:root {
  --tsj-blue: var(--ts-blue-action, #406AA9);
  --tsj-blue-deep: var(--ts-blue-deep, #31537F);
  --tsj-navy: var(--ts-navy, #223A5B);
  --tsj-text: var(--ts-text, #263B53);
  --tsj-muted: var(--ts-text-soft, #66717C);
  --tsj-line: var(--ts-line, #D9E2EC);
  --tsj-line-dark: var(--ts-line-dark, #C3CFDC);
  --tsj-soft: var(--ts-soft, #F3F6F9);
  --tsj-white: #fff;
  --tsj-font: var(--ts-font, "Manrope", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}

.ts-coveto-jobs, .ts-coveto-jobs * { box-sizing: border-box; }
.ts-coveto-jobs { font-family: var(--tsj-font); color: var(--tsj-text); }
.ts-coveto-shell { width: min(calc(100% - 64px), 1400px); margin-inline: auto; }
.ts-coveto-kicker { display:flex; align-items:center; gap:12px; margin:0 0 14px; color:var(--tsj-blue); font-size:10px; line-height:1.2; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.ts-coveto-kicker::before { content:""; width:38px; height:1px; background:var(--tsj-blue); }

/* Startseite */
.ts-coveto-teaser { width:100%; padding:64px 0 68px; background:#fff; }
.ts-coveto-teaser .ts-coveto-shell { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(0,1.7fr); gap:clamp(48px,6vw,94px); align-items:start; }
.ts-coveto-teaser-copy h2 { margin:0 0 16px; color:var(--tsj-navy); font-size:clamp(30px,3vw,46px); line-height:1.05; letter-spacing:-.035em; font-weight:700; }
.ts-coveto-teaser-copy p { max-width:440px; margin:0 0 24px; color:var(--tsj-muted); font-size:15px; line-height:1.65; }
.ts-coveto-primary { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:50px; padding:0 20px; border:1px solid var(--tsj-blue); border-radius:5px; background:var(--tsj-blue); color:#fff !important; font-size:14px; font-weight:700; text-decoration:none !important; }
.ts-coveto-primary:hover { background:var(--tsj-blue-deep); border-color:var(--tsj-blue-deep); }

/* Filter */
.ts-coveto-filters { display:grid; grid-template-columns:minmax(230px,1.55fr) repeat(3,minmax(120px,.7fr)); gap:10px; margin-bottom:12px; }
.ts-coveto-overview .ts-coveto-filters { grid-template-columns:minmax(260px,1.65fr) repeat(4,minmax(130px,.72fr)); }
.ts-coveto-filters label { position:relative; display:block; margin:0; }
.ts-coveto-filters input,
.ts-coveto-filters select { width:100%; height:48px; margin:0; padding:0 38px 0 14px; border:1px solid var(--tsj-line); border-radius:5px; outline:0; background:#fff; color:var(--tsj-navy); font:600 13px/1 var(--tsj-font); box-shadow:none; }
.ts-coveto-filters input { padding-left:42px; font-weight:500; }
.ts-coveto-filters input:focus,
.ts-coveto-filters select:focus { border-color:var(--tsj-blue); box-shadow:0 0 0 3px rgba(64,106,169,.08); }
.ts-coveto-search-icon { position:absolute; left:15px; top:50%; width:15px; height:15px; border:2px solid var(--tsj-blue); border-radius:50%; transform:translateY(-58%); pointer-events:none; }
.ts-coveto-search-icon::after { content:""; position:absolute; right:-5px; bottom:-3px; width:6px; height:2px; background:var(--tsj-blue); transform:rotate(45deg); transform-origin:left center; }

/* Rows */
.ts-coveto-job-list { border:1px solid var(--tsj-line); border-radius:5px; overflow:hidden; background:#fff; }
.ts-coveto-job-row { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:72px; padding:12px 18px; border-bottom:1px solid var(--tsj-line); background:#fff; color:var(--tsj-navy) !important; text-decoration:none !important; transition:background-color .16s ease, padding-left .16s ease; }

/* Shortcode limits: hidden rows must stay hidden even though job rows use display:flex. */
.ts-coveto-job-row[hidden] { display:none !important; }
.ts-coveto-job-row:last-child { border-bottom:0; }
.ts-coveto-job-row:hover { background:#FBFCFD; padding-left:22px; }
.ts-coveto-job-main { min-width:0; display:block; }
.ts-coveto-job-main strong { display:block; margin:0 0 6px; color:var(--tsj-navy); font-size:15px; line-height:1.25; font-weight:750; }
.ts-coveto-job-meta { display:flex; flex-wrap:wrap; gap:8px 18px; color:var(--tsj-muted); font-size:12px; line-height:1.3; }
.ts-coveto-job-meta > span { position:relative; padding-left:17px; }
.ts-coveto-job-meta > span::before { position:absolute; left:0; top:50%; transform:translateY(-50%); color:var(--tsj-blue); font-size:12px; }
.ts-meta-location::before { content:"⌖"; }
.ts-meta-category::before { content:"▣"; }
.ts-meta-employment::before { content:"▤"; }
.ts-meta-remote::before { content:"⌂"; }
.ts-coveto-arrow { flex:0 0 auto; color:var(--tsj-blue); font-size:21px; line-height:1; transition:transform .16s ease; }
.ts-coveto-job-row:hover .ts-coveto-arrow { transform:translateX(4px); }

.ts-coveto-more-band { display:grid; grid-template-columns:42px 1fr auto; gap:14px; align-items:center; margin-top:12px; padding:13px 14px; border:1px solid #e3eaf1; border-radius:5px; background:#f7f9fc; }
.ts-coveto-more-band strong { display:block; color:var(--tsj-navy); font-size:13px; line-height:1.25; }
.ts-coveto-more-band small { display:block; margin-top:2px; color:var(--tsj-muted); font-size:11px; line-height:1.35; }
.ts-coveto-more-band > a { display:inline-flex; align-items:center; gap:12px; min-height:40px; padding:0 14px; border:1px solid var(--tsj-blue); border-radius:4px; color:var(--tsj-blue) !important; font-size:12px; font-weight:750; text-decoration:none !important; background:#fff; white-space:nowrap; }
.ts-coveto-briefcase { position:relative; display:block; width:28px; height:23px; border:2px solid var(--tsj-blue); border-radius:3px; }
.ts-coveto-briefcase::before { content:""; position:absolute; left:7px; top:-7px; width:10px; height:7px; border:2px solid var(--tsj-blue); border-bottom:0; border-radius:3px 3px 0 0; }
.ts-coveto-empty { margin-top:12px; padding:18px; border:1px solid var(--tsj-line); border-radius:5px; color:var(--tsj-muted); background:#fff; }

/* Vollständige Übersicht */
.ts-coveto-overview { width:min(calc(100% - 64px),1400px); margin:0 auto; padding:80px 0 100px; }
.ts-coveto-overview-head { max-width:760px; margin-bottom:34px; }
.ts-coveto-overview-head h2 { margin:0 0 14px; color:var(--tsj-navy); font-size:clamp(38px,4vw,62px); line-height:1.02; letter-spacing:-.045em; font-weight:650; }
.ts-coveto-overview-head p { max-width:650px; margin:0; color:var(--tsj-muted); font-size:17px; line-height:1.65; }
.ts-coveto-resultline { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:18px 0 12px; color:var(--tsj-muted); font-size:13px; }
.ts-coveto-resultline strong { color:var(--tsj-navy); }
.ts-coveto-resultline button { appearance:none; border:0; padding:0; background:transparent; color:var(--tsj-blue); font:700 12px/1 var(--tsj-font); cursor:pointer; }
.ts-coveto-job-list--full .ts-coveto-job-row { min-height:84px; padding:15px 20px; }
.ts-coveto-job-list--full .ts-coveto-job-main strong { font-size:17px; }
.ts-coveto-loadmore-wrap { display:flex; justify-content:center; margin-top:28px; }
.ts-coveto-loadmore { min-height:48px; padding:0 22px; border:1px solid var(--tsj-blue); border-radius:5px; background:#fff; color:var(--tsj-blue); font:700 13px/1 var(--tsj-font); cursor:pointer; }
.ts-coveto-loadmore:hover { background:var(--tsj-blue); color:#fff; }

/* Single job */
.ts-job-single { font-family:var(--tsj-font); color:var(--tsj-text); }
.ts-job-hero { width:100%; padding:72px 0 66px; background:var(--tsj-soft); border-bottom:1px solid var(--tsj-line); }
.ts-job-shell { width:min(calc(100% - 64px),1200px); margin-inline:auto; }
.ts-job-back { display:inline-flex; gap:8px; margin-bottom:34px; color:var(--tsj-blue) !important; font-size:13px; font-weight:700; text-decoration:none !important; }
.ts-job-hero h1 { max-width:950px; margin:0 0 22px; color:var(--tsj-navy); font-size:clamp(38px,4.4vw,66px); line-height:1.02; letter-spacing:-.045em; font-weight:650; }
.ts-job-hero-meta { display:flex; flex-wrap:wrap; gap:10px 22px; color:var(--tsj-muted); font-size:14px; }
.ts-job-body { padding:72px 0 100px; }
.ts-job-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:70px; align-items:start; }
.ts-job-content { min-width:0; }
.ts-job-section { padding:0 0 42px; margin:0 0 42px; border-bottom:1px solid var(--tsj-line); }
.ts-job-section:last-child { border-bottom:0; }
.ts-job-section h2 { margin:0 0 18px; color:var(--tsj-navy); font-size:28px; line-height:1.15; letter-spacing:-.02em; }
.ts-job-section, .ts-job-section p, .ts-job-section li { color:var(--tsj-muted); font-size:16px; line-height:1.75; }
.ts-job-section ul { padding-left:1.2em; }
.ts-job-apply { position:sticky; top:130px; padding:26px; border:1px solid var(--tsj-line); background:#fff; box-shadow:0 18px 50px rgba(34,58,91,.07); }
.ts-job-apply strong { display:block; margin-bottom:8px; color:var(--tsj-navy); font-size:20px; }
.ts-job-apply p { margin:0 0 20px; color:var(--tsj-muted); font-size:13px; line-height:1.55; }
.ts-job-apply a { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:52px; padding:0 18px; border-radius:5px; background:var(--tsj-blue); color:#fff !important; font-size:14px; font-weight:750; text-decoration:none !important; }
.ts-job-apply a:hover { background:var(--tsj-blue-deep); }

@media (max-width:1024px) {
  .ts-coveto-shell { width:min(calc(100% - 56px),1400px); }
  .ts-coveto-teaser .ts-coveto-shell { grid-template-columns:1fr; gap:36px; }
  .ts-coveto-teaser-copy { max-width:680px; }
  .ts-coveto-filters, .ts-coveto-overview .ts-coveto-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ts-coveto-search { grid-column:1 / -1; }
  .ts-job-layout { grid-template-columns:1fr; gap:36px; }
  .ts-job-apply { position:static; }
}

@media (max-width:767px) {
  .ts-coveto-shell, .ts-coveto-overview, .ts-job-shell { width:calc(100% - 40px); }
  .ts-coveto-teaser { padding:52px 0 58px; }
  .ts-coveto-teaser-copy h2 { font-size:34px; }
  .ts-coveto-filters, .ts-coveto-overview .ts-coveto-filters { grid-template-columns:1fr; }
  .ts-coveto-search { grid-column:auto; }
  .ts-coveto-job-row { min-height:86px; padding:14px 15px; }
  .ts-coveto-job-meta { gap:6px 12px; }
  .ts-coveto-more-band { grid-template-columns:36px 1fr; }
  .ts-coveto-more-band > a { grid-column:1 / -1; width:100%; justify-content:space-between; }
  .ts-coveto-overview { padding:58px 0 80px; }
  .ts-coveto-overview-head h2 { font-size:40px; }
  .ts-job-hero { padding:52px 0 48px; }
  .ts-job-hero h1 { font-size:38px; }
  .ts-job-body { padding:52px 0 72px; }
  .ts-job-section h2 { font-size:24px; }
}


/* ==========================================================
   Single job page – TecScope visual language
   ========================================================== */
body.single-ts_job {
    background: #fff;
}

body.single-ts_job .ts-job-single {
    --tsj-blue: var(--ts-blue-action, #406AA9);
    --tsj-blue-deep: var(--ts-blue-deep, #31537F);
    --tsj-navy: var(--ts-navy, #223A5B);
    --tsj-text: var(--ts-text, #263B53);
    --tsj-muted: var(--ts-text-soft, #66717C);
    --tsj-soft: var(--ts-soft, #F3F6F9);
    --tsj-line: var(--ts-line, #D9E2EC);
}

.ts-job-hero {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.ts-job-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -70%;
    right: -6%;
    width: 34%;
    aspect-ratio: 1;
    border: 1px solid rgba(64,106,169,.12);
    border-radius: 50%;
    pointer-events: none;
}

.ts-job-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    width: 18%;
    height: 100%;
    background: rgba(64,106,169,.035);
    clip-path: polygon(28% 0,100% 0,100% 100%,0 100%);
    pointer-events: none;
}

.ts-job-back {
    align-items: center;
}

.ts-job-hero .ts-coveto-kicker {
    margin-bottom: 16px;
}

.ts-job-hero-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid var(--tsj-line);
    border-radius: 999px;
    background: rgba(255,255,255,.74);
    color: var(--tsj-navy);
    font-weight: 650;
}

.ts-job-body {
    background:
      linear-gradient(180deg, #fff 0%, #fff 76%, #FBFCFD 100%);
}

.ts-job-content {
    max-width: 800px;
}

.ts-job-section:first-child {
    font-size: 18px;
}

.ts-job-section h2::before {
    content: "";
    display: inline-block;
    width: 28px;
    height: 1px;
    margin: 0 12px 8px 0;
    background: var(--tsj-blue);
}

.ts-job-section ul,
.ts-job-section ol {
    margin: 18px 0 0;
    padding-left: 1.25rem;
}

.ts-job-section li + li {
    margin-top: 9px;
}

.ts-job-section li::marker {
    color: var(--tsj-blue);
}

.ts-job-apply {
    border-radius: 8px;
}

.ts-job-apply::before {
    content: "BEWERBUNG";
    display: block;
    margin-bottom: 14px;
    color: var(--tsj-blue);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
}

.ts-job-apply a span {
    transition: transform .18s ease;
}

.ts-job-apply a:hover span {
    transform: translateX(3px);
}

@media (max-width: 767px) {
    .ts-job-hero::after {
        width: 30%;
        opacity: .7;
    }

    .ts-job-hero-meta span {
        min-height: 32px;
        font-size: 12px;
    }
}


/* ==========================================================
   Single job page – refinement 1.0.4
   Clean, structured text styling + logo instead of circle
   ========================================================== */
.ts-job-hero .ts-job-shell {
    position: relative;
    z-index: 2;
}

.ts-job-hero::before {
    display: none !important;
}

.ts-job-hero-brand {
    position: absolute;
    top: -4px;
    right: clamp(8px, 1.8vw, 20px);
    width: clamp(96px, 11vw, 138px);
    opacity: .14;
    pointer-events: none;
    user-select: none;
}

.ts-job-hero-brand img {
    display: block;
    width: 100%;
    height: auto;
}

.ts-job-content {
    max-width: 820px;
}

.ts-job-section {
    margin: 0 0 20px;
    padding: 28px 32px;
    border: 1px solid var(--tsj-line);
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(251,252,253,1) 100%);
    box-shadow: 0 10px 26px rgba(34,58,91,.035);
}

.ts-job-section:last-child {
    margin-bottom: 0;
}

.ts-job-section--intro {
    border-left: 3px solid var(--tsj-blue);
    background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(246,249,252,1) 100%);
}

.ts-job-section h2 {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin: 0 0 18px;
    color: var(--tsj-navy);
    font-size: 27px;
    line-height: 1.15;
    letter-spacing: -.02em;
    font-weight: 700;
}

.ts-job-section h2::before {
    flex: 0 0 auto;
    margin: 0;
}

.ts-job-section p,
.ts-job-section li,
.ts-job-section blockquote {
    color: var(--tsj-muted);
    font-size: 15.5px;
    line-height: 1.78;
}

.ts-job-section--intro p {
    color: var(--tsj-text);
    font-size: 17px;
    line-height: 1.82;
}

.ts-job-section p {
    margin: 0;
}

.ts-job-section p + p,
.ts-job-section p + ul,
.ts-job-section p + ol,
.ts-job-section ul + p,
.ts-job-section ol + p {
    margin-top: 16px;
}

.ts-job-section strong,
.ts-job-section b {
    color: var(--tsj-navy);
    font-weight: 700;
}

.ts-job-section a {
    color: var(--tsj-blue);
    text-decoration: none;
    border-bottom: 1px solid rgba(64,106,169,.28);
}

.ts-job-section a:hover {
    border-bottom-color: var(--tsj-blue);
}

.ts-job-section ul,
.ts-job-section ol {
    margin: 16px 0 0;
    padding-left: 1.3rem;
}

.ts-job-section li {
    padding-left: 2px;
}

.ts-job-section li + li {
    margin-top: 10px;
}

.ts-job-section hr {
    border: 0;
    border-top: 1px solid var(--tsj-line);
    margin: 22px 0;
}

.ts-job-apply {
    border-radius: 10px;
}

@media (max-width: 1024px) {
    .ts-job-hero-brand {
        width: 112px;
        opacity: .12;
    }

    .ts-job-section {
        padding: 24px 26px;
    }
}

@media (max-width: 767px) {
    .ts-job-hero-brand {
        top: -2px;
        right: 0;
        width: 90px;
        opacity: .12;
    }

    .ts-job-section {
        padding: 22px 20px;
        border-radius: 8px;
    }

    .ts-job-section h2 {
        font-size: 24px;
    }

    .ts-job-section--intro p {
        font-size: 16px;
    }
}


/* ==========================================================
   Single job detail – editorial refinement 1.0.5
   No cards: clean typography, dividers and blue accents
   ========================================================== */

/* Hero logo: use the requested uploaded logo, clearly visible but restrained. */
.ts-job-hero-brand {
    top: 50% !important;
    right: clamp(0px, 1vw, 14px) !important;
    width: clamp(120px, 13vw, 175px) !important;
    transform: translateY(-50%);
    opacity: .20 !important;
    z-index: 0;
}

.ts-job-hero-brand img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
}

.ts-job-hero .ts-job-shell > :not(.ts-job-hero-brand) {
    position: relative;
    z-index: 2;
}

/* Remove the card treatment again. */
.ts-job-content {
    max-width: 820px;
}

.ts-job-section,
.ts-job-section--intro,
.ts-job-section--box {
    margin: 0 !important;
    padding: 0 0 38px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.ts-job-section + .ts-job-section {
    padding-top: 38px !important;
    border-top: 1px solid var(--tsj-line) !important;
}

/* Intro is a little stronger, but still plain text on white. */
.ts-job-section--intro {
    position: relative;
    padding-left: 18px !important;
}

.ts-job-section--intro::before {
    content: "";
    position: absolute;
    top: 5px;
    bottom: 43px;
    left: 0;
    width: 2px;
    background: var(--tsj-blue);
}

/* Automated accents inside Coveto text. */
.ts-job-copy-eyebrow {
    display: block;
    margin: 0 0 4px;
    color: var(--tsj-navy);
    font-size: 13px;
    line-height: 1.35;
    font-weight: 700;
}

.ts-job-accent-title {
    color: var(--tsj-blue);
    font-weight: 750;
}

.ts-job-copy-meta {
    display: block;
    margin-top: 3px;
    color: var(--tsj-navy);
    font-size: 14px;
    line-height: 1.4;
    font-weight: 650;
}

/* Section headings: blue job title inside otherwise navy heading. */
.ts-job-section h2 {
    display: block !important;
    margin: 0 0 20px !important;
    color: var(--tsj-navy) !important;
    font-size: clamp(24px, 2.1vw, 29px) !important;
    line-height: 1.18 !important;
    letter-spacing: -.025em !important;
    font-weight: 650 !important;
}

.ts-job-section h2::before {
    content: "" !important;
    display: block !important;
    width: 30px !important;
    height: 1px !important;
    margin: 0 0 12px !important;
    background: var(--tsj-blue) !important;
}

.ts-job-section h2 span {
    color: var(--tsj-blue);
    font-weight: 700;
}

.ts-job-section h2 small {
    display: inline;
    color: var(--tsj-muted);
    font-size: .58em;
    font-weight: 550;
    letter-spacing: 0;
}

/* Calm body typography. */
.ts-job-section p,
.ts-job-section li,
.ts-job-section blockquote {
    color: var(--tsj-muted) !important;
    font-size: 15.5px !important;
    line-height: 1.76 !important;
}

.ts-job-section--intro p {
    color: var(--tsj-text) !important;
    font-size: 16px !important;
    line-height: 1.8 !important;
}

.ts-job-section p {
    margin: 0 !important;
}

.ts-job-section p + p,
.ts-job-section p + ul,
.ts-job-section p + ol,
.ts-job-section ul + p,
.ts-job-section ol + p {
    margin-top: 15px !important;
}

.ts-job-section strong,
.ts-job-section b {
    color: var(--tsj-navy) !important;
    font-weight: 700 !important;
}

.ts-job-section ul,
.ts-job-section ol {
    margin: 16px 0 0 !important;
    padding-left: 1.28rem !important;
}

.ts-job-section li {
    padding-left: 4px;
}

.ts-job-section li + li {
    margin-top: 8px !important;
}

.ts-job-section li::marker {
    color: var(--tsj-blue);
}

/* Avoid an unnecessary divider after the final section. */
.ts-job-section:last-child {
    padding-bottom: 0 !important;
}

/* Keep application card – one card is useful as the action anchor. */
.ts-job-apply {
    border-radius: 8px !important;
}

@media (max-width: 1024px) {
    .ts-job-hero-brand {
        width: 125px !important;
        opacity: .14 !important;
    }
}

@media (max-width: 767px) {
    .ts-job-hero-brand {
        top: 22px !important;
        right: 0 !important;
        width: 78px !important;
        transform: none !important;
        opacity: .12 !important;
    }

    .ts-job-section,
    .ts-job-section--intro,
    .ts-job-section--box {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .ts-job-section--intro::before {
        display: none;
    }

    .ts-job-section + .ts-job-section {
        padding-top: 30px !important;
    }

    .ts-job-section h2 {
        font-size: 23px !important;
    }
}


/* ==========================================================
   Job bullets – 1.0.6
   Convert Coveto visual bullets to semantic lists and give
   wrapped lines a clean hanging indent.
   ========================================================== */
.ts-job-section .ts-job-feed-list,
.ts-job-section ul {
    list-style: none !important;
    margin: 20px 0 4px !important;
    padding: 0 !important;
}

.ts-job-section .ts-job-feed-list li,
.ts-job-section ul li {
    position: relative;
    margin: 0 !important;
    padding: 0 0 0 22px !important;
    color: var(--tsj-muted) !important;
    font-size: 15.5px !important;
    line-height: 1.68 !important;
}

.ts-job-section .ts-job-feed-list li + li,
.ts-job-section ul li + li {
    margin-top: 12px !important;
}

.ts-job-section .ts-job-feed-list li::before,
.ts-job-section ul li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: .72em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--tsj-blue);
    transform: translateY(-50%);
}

.ts-job-section .ts-job-feed-list li::marker,
.ts-job-section ul li::marker {
    content: "";
}

/* Paragraph after a list gets a little breathing room. */
.ts-job-section .ts-job-feed-list + p,
.ts-job-section ul + p {
    margin-top: 22px !important;
}

/* Avoid tight list starts directly below section headings. */
.ts-job-section h2 + .ts-job-feed-list,
.ts-job-section h2 + ul {
    margin-top: 18px !important;
}

@media (max-width: 767px) {
    .ts-job-section .ts-job-feed-list li,
    .ts-job-section ul li {
        padding-left: 20px !important;
        line-height: 1.7 !important;
    }

    .ts-job-section .ts-job-feed-list li + li,
    .ts-job-section ul li + li {
        margin-top: 11px !important;
    }
}


/* Asset readiness marker used to prevent a flash of unstyled job markup. */
.ts-coveto-jobs,
.ts-job-single {
    --tsj-assets-ready: 1;
}

.ts-coveto-ui-ready {
    animation: tsCovetoReveal .12s ease-out both;
}

@keyframes tsCovetoReveal {
    from { opacity: .01; }
    to   { opacity: 1; }
}

/* 1.0.13: server-rendered teaser states and accessible controls. */
.ts-coveto-teaser--empty .ts-coveto-shell{grid-template-columns:1fr;gap:0}
.ts-coveto-teaser--empty .ts-coveto-teaser-copy{max-width:850px}
.ts-coveto-teaser--empty .ts-coveto-teaser-copy h2{font-size:clamp(25px,2.4vw,32px);line-height:1.2}
.ts-coveto-teaser--empty .ts-coveto-teaser-copy p{max-width:760px;margin-bottom:18px}
.ts-coveto-more-band[hidden]{display:none!important}
.ts-coveto-jobs :is(a,button,input,select):focus-visible{outline:3px solid #223a5b;outline-offset:3px;box-shadow:0 0 0 6px #fff}
.ts-coveto-filters :is(input,select){border-color:#66717c}
.ts-coveto-filters input::placeholder{color:#66717c;opacity:1}

/* Status stays available to assistive technology without shifting the layout. */
.ts-coveto-sr-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}

/* Optional application route alongside the overview introduction. */
.ts-coveto-overview-top { margin-bottom:34px; }
.ts-coveto-overview-top .ts-coveto-overview-head { margin-bottom:0; }
.ts-coveto-overview-top--initiative { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:48px; align-items:start; }
.ts-coveto-initiative { border-left:1px solid #d9e2ec; padding:4px 0 4px 26px; }
.ts-coveto-initiative h3 { color:#203b5e; font-size:23px; line-height:1.3; margin:0 0 10px; }
.ts-coveto-initiative p { color:#526477; font-size:16px; line-height:1.65; margin:0 0 12px; max-width:560px; }
.ts-coveto-jobs .ts-coveto-initiative a { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:48px; max-width:100%; box-sizing:border-box; padding:12px 20px; border:1px solid #406aa9; border-radius:5px; background:#406aa9; color:#fff; font-size:15px; line-height:1.4; font-weight:700; text-decoration:none; text-align:center; }
.ts-coveto-jobs .ts-coveto-initiative a:hover { background:#223a5b; border-color:#223a5b; color:#fff; }
.ts-coveto-initiative a:focus-visible { outline:3px solid #406aa9; outline-offset:4px; }
.ts-coveto-initiative small { display:block; margin-top:8px; color:#526477; font-size:13px; }
@media(max-width:1024px) {
 .ts-coveto-overview-top--initiative { grid-template-columns:1fr; gap:24px; }
 .ts-coveto-initiative { padding-left:20px; }
}

/* Optional location grouping: real headings, all matching jobs visible. */
.ts-coveto-view-switch { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.ts-coveto-view-switch[hidden] { display:none; }
.ts-coveto-jobs .ts-coveto-view-switch button { min-height:44px; padding:10px 18px; border:1px solid #406aa9; border-radius:5px; color:#31537f; background:#fff; font:inherit; font-size:14px; font-weight:700; cursor:pointer; }
.ts-coveto-jobs .ts-coveto-view-switch button[aria-pressed="true"] { color:#fff; background:#406aa9; }
.ts-coveto-jobs .ts-coveto-view-switch button:hover { border-color:#223a5b; }
.ts-coveto-grouped .ts-coveto-job-list { border:0; border-radius:0; overflow:visible; }
.ts-coveto-jobs .ts-coveto-location-heading { margin:26px 0 0; padding:16px 20px; color:#223a5b; background:#f3f6f9; border:1px solid #d9e2ec; font-size:20px; line-height:1.4; font-weight:700; }
.ts-coveto-jobs .ts-coveto-location-heading:first-of-type { margin-top:0; }
.ts-coveto-grouped .ts-coveto-job-row { border:1px solid #d9e2ec; border-top:0; }
