/* Common editorial modules: shared across every page and editable in WordPress. */
.kops-page-content .content-section { padding-block: var(--section-space); }
.content-section--soft { background: linear-gradient(135deg,#edf4f8 0%,#f8fafb 55%,#eaf2f6 100%); border-block: 1px solid #e3ebf0; }
.content-heading { display: grid; grid-template-columns: minmax(150px,.3fr) minmax(0,1fr); gap: var(--block-space); align-items: start; margin-bottom: 36px; }
.content-heading .section-kicker { margin: 7px 0 0; }
.content-heading h2 { margin: 0; max-width: 830px; text-wrap: balance; }
.content-heading .content-intro { grid-column: 2; grid-row: 2; max-width: 760px; margin: 10px 0 0; }
.content-section > .wrap:has(> .content-heading + .content-intro) { display: grid; grid-template-columns: minmax(150px,.3fr) minmax(0,1fr); column-gap: var(--block-space); row-gap: 10px; }
.content-section > .wrap:has(> .content-heading + .content-intro) > .content-heading { display: contents; }
.content-section > .wrap:has(> .content-heading + .content-intro) > .content-heading > .section-kicker { grid-column: 1; grid-row: 1; }
.content-section > .wrap:has(> .content-heading + .content-intro) > .content-heading > h2 { grid-column: 2; grid-row: 1; }
.content-section > .wrap:has(> .content-heading + .content-intro) > .content-intro { grid-column: 2; grid-row: 2; margin: 0; }
.content-section > .wrap:has(> .content-heading + .content-intro) > :not(.content-heading):not(.content-intro) { grid-column: 1 / -1; }
.content-section p { color: #3f5666; line-height: 1.75; max-width: 850px; }
.content-section p:last-child { margin-bottom: 0; }
.content-intro { margin: 0; font-size: 18px; }
.content-cards { display: grid; gap: 20px; }
.content-cards--2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.content-cards--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.content-cards--4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.content-card { min-width: 0; display: flex; flex-direction: column; padding: var(--panel-inset); background: #fff; border: 1px solid #d7e3eb;  border-radius: var(--radius); box-shadow: 0 12px 34px #17384a0c; transition: transform .24s ease,box-shadow .24s ease,border-color .24s ease; }
.content-card:hover { transform: translateY(-3px); border-color: #a9c7d9; box-shadow: 0 20px 44px #17384a18; }
.content-card h3 { margin: 0 0 16px; }
.content-cards--4 > .content-card h3 { font-size: clamp(18px,1.05vw,20px); overflow-wrap: normal; word-break: normal; hyphens: none; }
.content-card p { font-size: 16px; margin: 0 0 20px; }
.content-card a { overflow-wrap: anywhere; }
.content-card .text-link { margin-top: auto; border-top: 1px solid #e0e8ef; padding-top: 18px; }
.content-card > p:last-child { margin-bottom: 0; }
.content-card > p:last-child:has(> .text-link) { margin-top: auto; }
.content-card--visual { overflow: hidden; border-top: 0; }
.content-card-media { height: 190px; margin: calc(-1 * var(--panel-inset)) calc(-1 * var(--panel-inset)) 24px; overflow: hidden; background: #dce8ee; }
.content-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
#ausbildungssuchende .content-card-media, #pflegeeinrichtungen .content-card-media { height: auto; aspect-ratio: 2 / 1; }
#ausbildungssuchende .content-card-media img, #pflegeeinrichtungen .content-card-media img { object-position: center 35%; }
.content-card:hover .content-card-media img { transform: scale(1.045); }
.content-feature { display: grid; grid-template-columns: 1fr 1fr; background: #fff; border: 1px solid #d7e3eb; border-radius: var(--radius); overflow: hidden; box-shadow: 0 16px 40px #17384a0d; }
.content-feature > img { width: 100%; height: 100%; min-height: 290px; max-height: 350px; object-fit: cover; }
.content-feature > div { align-self: center; padding: clamp(24px,4vw,48px); }
.content-feature > p:has(> img) { margin: 0; height: 100%; grid-column: 1; grid-row: 1; }
.content-feature > p:has(> img) > img { display: block; width: 100%; height: 100%; min-height: 290px; object-fit: cover; }
.content-feature > p:empty { display: none; }
.content-feature > div { grid-column: 2; grid-row: 1; }
.team-grid:has(> :nth-child(2)):not(:has(> :nth-child(3))) { grid-template-columns: repeat(2,minmax(0,1fr)); }
.content-feature h3 { margin-top: 0; }
.content-note { display: grid; grid-template-columns: .65fr 1.35fr; gap: 24px; padding: 26px 0 0; margin-top: 26px; border-top: 1px solid #c6dbe7; }
.content-note strong { font-size: 20px; line-height: 1.4; }
.content-note p { font-size: 15px; margin: 0; }
.content-note > p:empty { display: none; }
.content-split { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--block-space); }
.content-split h3 { margin-top: 0; }
.content-split p { font-size: 18px; }
.content-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; padding: 0; margin: 0; list-style: none; counter-reset: step; }
.content-steps li { min-width: 0; position: relative; border: 1px solid #d7e3eb; border-top: 3px solid #3987b6; border-radius: var(--radius); padding: 26px 24px 24px; background: linear-gradient(150deg,#fff,#f7fafc); box-shadow: 0 12px 30px #17384a0b; counter-increment: step; }
.content-steps li::before { content: "0" counter(step); display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: var(--blue); background: #e8f2f8; font-size: 13px; font-weight: 750; margin-bottom: 22px; }
.content-steps h3 { margin: 0 0 12px; }
.content-steps p { margin-bottom: 0; }
.content-cta { color: #fff; background: linear-gradient(118deg,#10233c 0%,#12539e 58%,#1767c5 100%); border-block: 1px solid #285b99; }
.content-cta > .wrap { display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.content-cta h2 { max-width: 750px; margin: 0 0 16px; color: #fff; }
.content-cta p { color: #e4eff6; margin: 0; max-width: 650px; }
.content-cta .button { flex-shrink: 0; max-width: 100%; color: #10233c; background: #fff; border-color: #fff; box-shadow: 0 8px 22px #10233c28; }
.content-cta .button:hover, .content-cta .button:focus-visible { color: #12539e; background: #edf3fb; border-color: #edf3fb; }
.content-faq { max-width: 960px; margin-left: auto; }
.content-faq details { margin-block: 10px; padding: 20px 22px; border: 1px solid #d7e3eb; border-radius: var(--radius); background: linear-gradient(150deg,#fff,#f8fafc); box-shadow: 0 8px 22px #17384a08; }
.content-faq details[open] { border-color: #9dbfd3; box-shadow: 0 12px 30px #17384a12; }
.content-faq summary { cursor: pointer; font-size: 19px; font-weight: 650; }
.content-faq p { margin: 16px 0 0; }
@media (prefers-reduced-motion: reduce) { .content-card { transition: none; } .content-card:hover { transform: none; } }
@media (prefers-reduced-motion: reduce) { .content-card-media img { transition: none; } .content-card:hover .content-card-media img { transform: none; } }
.legal-layout { display: grid; grid-template-columns: minmax(180px,.32fr) minmax(0,1fr); gap: 64px; align-items: start; }
.legal-toc { position: sticky; top: 130px; padding-right: 24px; border-right: 1px solid #d4e1eb; }
.legal-toc a { display: block; font-size: 14px; text-decoration: none; padding-block: 9px; line-height: 1.5; }
.legal-toc a:hover { text-decoration: underline; }
.legal-copy { max-width: 850px; min-width: 0; }
.legal-copy h2 { font-size: 28px; margin: 44px 0 20px; }
.legal-copy h2:first-child { margin-top: 0; }
.legal-copy a { overflow-wrap: anywhere; }
.legal-data { display: grid; grid-template-columns: .5fr 1fr; gap: 12px 24px; }
.legal-data dt { font-weight: 650; }
.legal-data dd { margin: 0; }
.sitemap-group ul { margin: 0; padding: 0; list-style: none; }
.sitemap-group { gap: 0; }
.sitemap-group h3 { margin-bottom: 10px; }
.sitemap-description { min-height: 3.5em; margin: 0 0 20px !important; font-size: 14px; }
.sitemap-group li { border-top: 1px solid #e0e8ef; }
.sitemap-group a { display: flex; justify-content: space-between; gap: 12px; padding-block: 10px; text-decoration: none; line-height: 1.45; }
.sitemap-group a:hover { text-decoration: underline; }
.application-entry { background:#e7eff7; border-block:1px solid #d5e1ec; }.application-entry>.wrap { display:flex; align-items:center; justify-content:space-between; gap:32px; }.application-entry-copy { max-width:780px; }.application-entry h2 { margin-block:10px 16px; }.application-entry p { margin-bottom:18px; }.application-entry ol { display:flex; list-style:none; gap:24px; padding:0; margin:0; counter-reset:application-entry; }.application-entry li { display:flex; align-items:center; list-style:none; counter-increment:application-entry; font-size:14px; font-weight:600; }.application-entry li::before { content:counter(application-entry); display:inline-grid; place-items:center; width:24px; height:24px; margin-inline-end:8px; background:var(--blue); color:white; border-radius:50%; }.application-entry .button { flex-shrink:0; }.sector-apply-link { margin-top:18px; }
@media(max-width:740px){.application-entry>.wrap{flex-direction:column;align-items:flex-start;gap:24px}.application-entry ol{gap:16px;flex-wrap:wrap}.application-entry h2{font-size:28px}}

.scroll-reveal { opacity: 1; transform: translateY(14px); transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.scroll-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .scroll-reveal { opacity: 1; transform: none; transition: none; }
}
@media (max-width: 1320px) {
  .content-cards--4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 1100px) {
  .sitemap-description { min-height: 0; }
  .content-cta > .wrap { align-items: start; flex-direction: column; }
}
@media (max-width: 768px) {
  .content-feature, .content-note { grid-template-columns: 1fr; }
  .content-feature > img { min-height: 0; height: 220px; }
  .content-feature > p:has(> img), .content-feature > div { grid-column: 1; grid-row: auto; }
  .content-feature > p:has(> img) > img { min-height: 0; height: 220px; }
  .team-grid:has(> :nth-child(2)):not(:has(> :nth-child(3))) { grid-template-columns: 1fr; }
  .team-section .content-heading .content-intro { grid-column: 1; grid-row: auto; }
  .content-heading { grid-template-columns: 1fr; gap: 14px; margin-bottom: 28px; }
  .content-heading .content-intro { grid-column: 1; grid-row: auto; }
  .content-section > .wrap:has(> .content-heading + .content-intro) { grid-template-columns: 1fr; row-gap: 12px; }
  .content-section > .wrap:has(> .content-heading + .content-intro) > .content-heading > .section-kicker,
  .content-section > .wrap:has(> .content-heading + .content-intro) > .content-heading > h2,
  .content-section > .wrap:has(> .content-heading + .content-intro) > .content-intro { grid-column: 1; grid-row: auto; }
  .content-heading .section-kicker { margin-top: 0; }
  .content-cards--3, .content-steps { grid-template-columns: 1fr; }
  .sitemap-grid { grid-template-columns: 1fr; }
  .content-split, .legal-layout { grid-template-columns: 1fr; gap: 28px; }
  .legal-toc { position: static; border: 0; padding: 20px; background: #f3f7fa; }
  .legal-toc a { display: inline-block; margin-right: 18px; }
  .content-faq { margin-left: 0; }
}
@media (max-width: 640px) {
  .content-cards--2, .content-cards--4 { grid-template-columns: 1fr; }
  .content-intro, .content-split p { font-size: 16px; }
  .content-cta .button { width: 100%; }
  .legal-data { grid-template-columns: 1fr; gap: 6px; }
  .legal-data dd { margin-bottom: 14px; }
  [id] { scroll-margin-top: 100px; }
}


/* German jobs portal: readable summaries and focused application details. */
.jobs-toolbar { display:flex; align-items:end; justify-content:space-between; gap:24px; padding:24px; margin-bottom:24px; border:1px solid #d7e3eb; border-radius:var(--radius); background:#f2f7fa; }
.jobs-toolbar > div { flex:1; max-width:650px; }
.jobs-toolbar label { display:block; font-size:14px; font-weight:650; margin-bottom:10px; }
.jobs-toolbar input { width:100%; min-height:50px; padding:12px 16px; background:#fff; border:1px solid #b9cddb; border-radius:6px; font:inherit; }
.job-result-count { font-size:14px; white-space:nowrap; margin:0; }
.jobs-portal .job-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:24px; }
.jobs-portal .job-card { display:flex; flex-direction:column; align-items:stretch; padding:28px; background:#fff; border:1px solid #d7e3eb; border-top:3px solid #1679af; box-shadow:0 12px 34px #17384a0c; }
.jobs-portal .job-card[hidden], .job-no-results[hidden] { display:none; }
.job-card-heading { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:18px; }
.job-card-heading .section-kicker { margin:0; }
.job-demo-label { padding:5px 8px; border-radius:4px; background:#f8f0d8; color:#725717; font-size:11px; }
.jobs-portal .job-card h3 { font-size:26px; margin:0 0 22px; }
.jobs-portal .job-card h3 a { color:var(--ink); text-decoration:none; }
.jobs-portal .job-card h3 a:hover { color:var(--blue); }
.job-facts { display:flex; flex-wrap:wrap; gap:16px 32px; list-style:none; padding:0; margin:0 0 20px; font-size:15px; }
.job-facts span { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:#526c7d; margin-bottom:6px; }
.job-preview { font-size:16px; }
.jobs-portal .job-card .button { width:fit-content; margin-top:auto; }
.job-detail-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.75fr); gap:40px; align-items:start; margin-top:32px; }
.job-detail-main { min-width:0; }
.job-detail-panel { padding:28px; border:1px solid #d7e3eb; border-radius:var(--radius); margin-top:24px; background:#fff; }
.job-detail-panel h2 { font-size:28px; margin-top:0; }
.job-detail-panel li { margin-bottom:12px; line-height:1.7; }
.job-demo-note { padding:20px; background:#fff8e7; border:1px solid #e8d7a5; border-radius:var(--radius); font-size:14px; }
.job-apply-panel { position:sticky; top:130px; padding:28px; border:1px solid #c7dce8; border-radius:var(--radius); background:#edf5fa; }
.job-apply-panel h2 { font-size:28px; }
.job-apply-panel > a:not(.button) { display:block; margin-top:20px; overflow-wrap:anywhere; font-size:14px; }
.job-apply-panel .button { width:100%; }
@media(max-width:768px) { .jobs-toolbar { align-items:stretch; flex-direction:column; padding:20px; } .jobs-portal .job-list,.job-detail-layout { grid-template-columns:1fr; } .job-apply-panel { position:static; } .jobs-portal .job-card,.job-detail-panel,.job-apply-panel { padding:22px; } }
