/* Editorial refresh for the homepage, inner-page heroes, navigation and forms. */
:where(a, button, input, textarea, select):focus-visible {
  outline: 3px solid #78a7ff;
  outline-offset: 3px;
}

/* Keep phone links free of underlines, including content and hover styles. */
a[href^="tel:"], a[href^="tel:"] * {
  text-decoration: none !important;
}

.button {
  transition: background-color .22s ease, color .22s ease, border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.button:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 25px rgba(8, 31, 50, .18);
}
.text-button, .text-link, .hero-phone, .aside-phone { transition: color .2s ease, gap .2s ease; }
.text-button:hover, .text-link:hover, .hero-phone:hover, .aside-phone:hover { gap: 25px; color: #4776d1; }
.service-card:hover .service-arrow, .job-card:hover .text-link span, .path-card:hover .round-arrow { transform: translate(3px, -3px); }
.service-arrow, .text-link span, .round-arrow { transition: transform .22s ease, background-color .22s ease; }
.path-card:hover .round-arrow { background: rgba(255, 255, 255, .18); }
.latest-jobs { background: #fff; }
.path-section .path-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.path-section .path-card { min-height: 390px; align-items: stretch; border: 1px solid #d7e4ee; border-radius: 18px; box-shadow: none; text-decoration: none; }
.path-section .path-card:after { content: none; }
.path-section .path-candidate { background: #eff4f7; color: var(--navy); }
.path-section .path-employer { background: var(--blue); color: #fff; border-color: var(--blue); }
.path-section .path-card .path-content { display: flex; flex-direction: column; align-items: flex-start; padding: 40px; }
.path-section .path-card .card-index { color: var(--blue); }
.path-section .path-employer .card-index { color: #e3ecff; }
.path-section .path-card h3 { font-size: clamp(2.2rem, 3vw, 2.5rem); }
.path-section .path-card p { max-width: 390px; margin: 0 0 32px; color: var(--muted); }
.path-section .path-employer p { color: #edf3ff; }
.path-action { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; margin-top: auto; padding: 14px 22px; border-radius: 6px; background: var(--blue); color: #fff; font-size: .9rem; font-weight: 700; transition: background-color .2s ease; }
.path-employer .path-action { background: #fff; color: var(--navy); }
.path-candidate:hover .path-action { background: #194393; }
.path-employer:hover .path-action { background: #e3ecff; }
@media (max-width: 620px) {
  .path-section .path-grid { grid-template-columns: 1fr; gap: 18px; }
  .path-section .path-card { min-height: 345px; }
  .path-section .path-card .path-content { padding: 28px; }
}
.job-card:hover { border-color: #a9bfd6; }

/* Typography replaces the homepage photo collage. */
.approach-section .approach-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 90px); }
.approach-typography { min-height: 440px; display: flex; flex-direction: column; justify-content: center; border-left: 2px solid var(--blue); padding-left: 32px; }
.approach-words { display: flex; flex-direction: column; gap: 12px; margin: 0; color: var(--blue); font-size: clamp(2.25rem, 4.8vw, 4.5rem); font-weight: 700; letter-spacing: -.045em; line-height: 1.12; }
.approach-availability { margin: 42px 0 0; color: var(--muted); font-size: .94rem; }
.approach-availability strong { margin-right: 5px; color: var(--navy); }
@media (max-width: 960px) {
  .approach-section .approach-grid { grid-template-columns: 1fr; gap: 48px; }
  .approach-typography { min-height: 0; padding: 12px 0 12px 28px; }
  .approach-words { font-size: clamp(2.25rem, 7vw, 4.5rem); }
  .approach-availability { margin-top: 28px; }
}

/* Candidate guidance replaces the photo beside the registration invitation. */
#jobsoegende .candidate-steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
#jobsoegende .candidate-steps li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 18px; padding: 28px 0; border-bottom: 1px solid var(--line); }
#jobsoegende .candidate-step-number { color: var(--blue); font-size: .85rem; font-weight: 750; padding-top: 4px; }
#jobsoegende .candidate-steps h3 { margin: 0 0 9px; color: var(--navy); font-size: 1.3rem; line-height: 1.3; }
#jobsoegende .candidate-steps p { margin: 0; font-size: .95rem; }

/* The link remains navigable; the adjacent chevron controls its submenu. */
.nav-heading { display: flex; align-items: center; gap: 4px; }
.site-nav > .nav-cta:hover,
.site-nav > .nav-cta:focus-visible { background: #3567c9; border-color: #3567c9; color: #fff; }
.nav-heading > a { display: inline-flex; align-items: center; padding: 28px 0; transition: color .2s ease; }
.nav-heading > a:hover, .nav-group:hover .nav-heading > a, .nav-group.is-open .nav-heading > a { color: var(--blue); }
.nav-caret { width: 30px; height: 30px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 5px; background: transparent; color: #61798b; transition: color .2s ease, background-color .2s ease; }
.nav-caret:hover, .nav-caret[aria-expanded="true"] { color: var(--blue); background: #edf3fb; }
.nav-caret svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.nav-caret[aria-expanded="true"] svg, .nav-group:hover .nav-caret svg { transform: rotate(180deg); }
.nav-group:hover .nav-dropdown, .nav-group:focus-within .nav-dropdown, .nav-group.is-open .nav-dropdown { display: grid; }
.nav-dropdown { padding: 11px; border-radius: 12px; }
.nav-dropdown-company { min-width: 280px; }
.nav-dropdown a { transition: color .18s ease, background-color .18s ease, padding-left .18s ease; }
.nav-dropdown a:hover, .nav-dropdown a:focus-visible { padding-left: 17px; background: #edf3fb; color: var(--blue); }

@media (max-width: 960px) {
  .header-inner { min-height: 70px; }
  .menu-toggle { display: block; }
  .site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff; padding: 12px 24px 25px; border-top: 1px solid var(--line); box-shadow: var(--shadow); flex-direction: column; align-items: stretch; gap: 0; max-height: calc(100dvh - 70px); overflow: auto; }
  .site-nav.is-open { display: flex; }
  .site-nav > a:not(.button) { display: block; padding: 13px 0; }
  .nav-heading { justify-content: space-between; }
  .nav-heading > a { display: block; flex: 1; padding: 13px 0; }
  .nav-caret { width: 38px; height: 38px; }
  .site-nav .nav-dropdown { display: none; position: static; min-width: 0; padding: 3px 0 9px 15px; box-shadow: none; border: 0; background: transparent; }
  .site-nav .nav-dropdown a { padding: 8px 0; color: var(--muted); }
  .site-nav .nav-group:hover .nav-dropdown, .site-nav .nav-group:focus-within .nav-dropdown { display: none; }
  .site-nav .nav-group.is-open .nav-dropdown { display: grid; }
  .nav-cta { margin-top: 13px; }
}

/* The original company video now fills the entire first screen. */
.home-hero { position: relative; display: flex; flex-direction: column; min-height: calc(100svh - 119px); background: #0a2033; isolation: isolate; }
.home-hero .hero-visual { position: absolute; z-index: -1; inset: 0; width: 100%; min-height: 0; border-radius: 0; }
.home-hero .hero-visual video { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
.home-hero .hero-video-overlay { background: linear-gradient(90deg, rgba(5, 21, 36, .88) 0%, rgba(5, 21, 36, .61) 48%, rgba(5, 21, 36, .23) 100%), linear-gradient(0deg, rgba(5, 21, 36, .58), transparent 32%); }
.home-hero-grid { position: relative; width: min(100% - 48px, 1220px); flex: 1; display: flex; align-items: center; min-height: 0; }
.hero-copy { max-width: 720px; padding: 85px 0 70px; color: #fff; }
.hero-copy h1 { font-size: clamp(4.4rem, 8vw, 8.2rem); max-width: 800px; line-height: .98; margin: 25px 0 30px; }
.hero-copy h1 em { color: #c5d7fc; }
.hero-copy > p { color: #e3ebf3; max-width: 610px; font-size: clamp(1.06rem, 1.6vw, 1.3rem); }
.hero-copy .eyebrow { color: #dce8ff; }
.hero-copy .button-outline { color: #fff; border-color: rgba(255,255,255,.82); background: rgba(255,255,255,.08); }
.hero-copy .button-outline:hover { background: #fff; color: var(--navy); }
.hero-copy .button-primary { background: #fff; color: var(--navy); }
.hero-copy .button-primary:hover { background: #dce8ff; }
.hero-proof { flex-wrap: wrap; gap: 16px; margin-top: 50px; color: #ecf2f8; font-size: 1.05rem; font-weight: 650; line-height: 1.4; }
.hero-proof .proof-stars { color: #e2b979; font-size: 1.35rem; letter-spacing: .09em; line-height: 1; }
.hero-bottom { position: relative; width: min(100% - 48px, 1220px); z-index: 1; color: #e0e9f1; border-color: rgba(255,255,255,.28); }
.hero-benefit { display: inline-flex; align-items: center; gap: 11px; min-height: 24px; white-space: nowrap; }
.hero-benefit svg { flex: none; width: 20px; height: 20px; fill: none; stroke: #b7cdf7; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hero-benefit:not(:last-child) { border-right: 1px solid rgba(255,255,255,.35); padding-right: 38px; margin-right: 38px; }

/* Inner pages use an offset photo card instead of the former flush split image. */
.page-hero { overflow: visible; position: relative; background: #e9f0f4; margin-bottom: 0; }
.page-hero-grid { grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr); gap: clamp(35px, 5vw, 85px); min-height: 540px; align-items: center; }
.page-hero-copy { padding: 75px 0; }
.page-hero-copy h1 { font-size: clamp(3.4rem, 5.5vw, 6rem); }
.page-hero-media { position: relative; min-height: 465px; align-self: stretch; margin: 38px 0 -52px; overflow: hidden; border: 9px solid #fff; border-radius: 14px 135px 14px 14px; box-shadow: 0 28px 55px rgba(11, 42, 65, .16); }
.page-hero-media img { object-position: center 42%; }
.page-hero--reverse .page-hero-media { order: -1; border-radius: 135px 14px 14px 14px; }
.page-hero--reverse .page-hero-copy { padding-left: 8px; }
.page-hero--reverse .page-hero-media img { object-position: center 55%; }
.page-hero-recruitment .page-hero-media img { object-position: 55% center; }
.page-hero-contact .page-hero-media img { object-position: 70% center; }
.page-hero[data-page="vikariat"] .page-hero-media img { object-position: 70% center; }
.page-hero[data-page="try-hire"] .page-hero-media img { object-position: 70% center; }
.page-hero-about .page-hero-media img { object-position: 40% center; }
.page-hero[data-page="faq"] .page-hero-grid { display: block; min-height: 0; }
.page-hero[data-page="faq"] .page-hero-copy { max-width: 900px; }
.faq-topic { scroll-margin-top: 110px; }
.page-hero--time { background: linear-gradient(115deg, #e9f2f8 0%, #f6f9fc 100%); }
.page-hero--time .page-hero-copy h1 { max-width: 620px; font-size: clamp(3.4rem, 5vw, 5rem); line-height: 1.02; }
.page-hero--time .page-hero-copy h1 em { color: var(--blue); }
.page-hero--time .page-hero-media { border-radius: 14px 110px 14px 14px; }
.media-badge { bottom: 20px; left: 20px; border-radius: 4px; padding: 11px 15px; box-shadow: none; text-transform: uppercase; letter-spacing: .1em; font-size: .67rem; }
.page-hero--plain { margin-bottom: 0; background: linear-gradient(125deg, #e9f0f4, #f8fafb); }
.page-hero--plain .page-hero-grid { display: block; min-height: 315px; }
.page-hero--plain .page-hero-copy { max-width: 900px; padding: 80px 0; }

/* The application is a complete, legible form within the job description. */
.job-hero-apply { margin-top: 35px; }
.job-description .awsm-job-form { max-width: 100%; background: #eff4f8; border: 1px solid #d8e4ed; border-radius: 20px; padding: 0; margin-top: 60px; overflow: hidden; box-shadow: 0 24px 55px rgba(9, 32, 51, .12); }
.job-description .awsm-job-form-inner { max-width: none; padding: clamp(25px, 4vw, 48px); }
.awsm-job-form-inner > .eyebrow { margin-bottom: 16px; }
.job-description .awsm-job-form h2 { margin: 0 0 13px; font-size: clamp(2.3rem, 3.5vw, 3.6rem); }
.application-intro { font-size: 1.05rem; margin: 0 0 8px; max-width: 620px; }
.application-privacy { font-size: .87rem; margin: 0 0 27px; }
.application-privacy a { color: var(--blue); text-decoration: underline; }
#awsm-application-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px 20px; }
#awsm-application-form .awsm-job-form-group { min-width: 0; margin: 0; }
#awsm-application-form .awsm-job-form-group:nth-child(n+3) { grid-column: 1 / -1; }
#awsm-application-form .awsm-job-form-group > label { display: block; margin-bottom: 8px; color: var(--ink); font-size: .87rem; font-weight: 750; }
#awsm-application-form .awsm-job-form-control:not([type="checkbox"]) { display: block; width: 100%; min-height: 55px; border: 1px solid #bdcfdc; border-radius: 8px; padding: 13px 15px; background: #fff; color: var(--ink); box-shadow: none; transition: border-color .2s ease, box-shadow .2s ease; }
#awsm-application-form textarea.awsm-job-form-control { min-height: 150px; resize: vertical; }
#awsm-application-form .awsm-job-form-control:not([type="checkbox"]):focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(35,84,180,.14); outline: none; }
#awsm-application-form input[type="file"] { border-style: dashed !important; background: #fff; cursor: pointer; }
#awsm-application-form input[type="file"]::file-selector-button { padding: 8px 12px; margin-right: 12px; border: 0; border-radius: 5px; color: var(--blue); background: #e9f0fb; font-weight: 700; cursor: pointer; }
#awsm-application-form .cv-picker { position: relative; display: flex; align-items: center; gap: 16px; min-height: 98px; padding: 18px; border: 1px dashed #9cb3c7; border-radius: 10px; background: #fff; cursor: pointer; transition: border-color .2s ease, background-color .2s ease; }
#awsm-application-form .cv-picker:hover, #awsm-application-form .cv-picker:focus-within { border-color: var(--blue); background: #f8fbff; }
.cv-picker-icon { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 8px; background: #e7effb; color: var(--blue); font-size: 1.7rem; }
.icon-upload { display: block; width: 23px; height: 23px; }
.cv-picker strong, .cv-picker small { display: block; overflow-wrap: anywhere; }
.cv-picker strong { color: var(--ink); font-size: .95rem; }
#awsm-application-form .cv-picker small { margin-top: 3px; }
#awsm-application-form .cv-picker input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
#awsm-application-form small { display: block; color: var(--muted); font-size: .78rem; margin-top: 7px; }
#awsm-application-form .awsm-job-inline-group { display: flex; align-items: flex-start; gap: 11px; padding: 6px 0; }
#awsm-application-form .awsm-job-inline-group input { margin: 3px 0 0; flex: none; width: 18px; height: 18px; accent-color: var(--blue); }
#awsm-application-form .awsm-job-inline-group label { margin: 0; line-height: 1.55; font-size: .86rem; font-weight: 500; color: var(--muted); }
#awsm-application-form .awsm-application-submit-btn { width: 100%; min-height: 58px; border: 0; border-radius: 7px; background: var(--blue); color: #fff; font-weight: 750; font-size: 1rem; cursor: pointer; transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease; }
#awsm-application-form .awsm-application-submit-btn:hover { background: var(--blue-dark); transform: translateY(-2px); box-shadow: 0 12px 22px rgba(35,84,180,.22); }
#awsm-application-form .awsm-job-form-error { color: #b13434; }
.awsm-application-message { margin-top: 20px; }
.job-detail-aside .button-light { width: 100%; }
@media (min-width: 851px) {
  .job-detail-aside { align-self: start; }
}

.form-card { padding: clamp(26px, 3.2vw, 44px); border: 1px solid #d7e4ee; border-top: 4px solid var(--blue); border-radius: 18px; background: linear-gradient(145deg, #f8fbfd, #eff5fa); box-shadow: 0 24px 55px rgba(9,32,51,.1); }
.form-card h3 { margin: 13px 0 9px; font-size: clamp(2rem, 3vw, 2.55rem); }
.form-card > p { margin-bottom: 30px; font-size: .98rem; }
.form-card .dr-form, .form-card .time-form .form-step { gap: 21px; }
.form-card .form-row { gap: 17px; }
.form-card .field { gap: 9px; color: var(--ink); font-size: .85rem; font-weight: 750; }
.form-card .field input:not([type="file"]), .form-card .field textarea, .form-card .field select { min-height: 55px; padding: 14px 16px; border: 1px solid #bed0df; border-radius: 9px; background-color: #fff; color: var(--ink); font-size: .95rem; font-weight: 500; transition: border-color .18s ease, box-shadow .18s ease; }
.form-card .field input::placeholder, .form-card .field textarea::placeholder { color: #708395; font-weight: 400; }
.form-card .field input:hover, .form-card .field textarea:hover, .form-card .field select:hover { border-color: #92aec5; }
.form-card .field input:focus, .form-card .field textarea:focus, .form-card .field select:focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(35,84,180,.14); }
.form-card .field textarea { min-height: 145px; line-height: 1.55; }
.form-card .field select { appearance: none; -webkit-appearance: none; padding-right: 59px; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Crect width='34' height='34' rx='9' fill='%23e7effc'/%3E%3Cpath d='m12 15 5 5 5-5' fill='none' stroke='%232354b4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-size: 34px 34px; background-position: right 10px center; background-repeat: no-repeat; }
.form-card .field select:hover, .form-card .field select:focus { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Crect width='34' height='34' rx='9' fill='%23d9e6fb'/%3E%3Cpath d='m12 15 5 5 5-5' fill='none' stroke='%23163d88' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.form-card .field select::-ms-expand { display: none; }
.form-card .field input[type="date"] { color-scheme: light; }
.form-card .field input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .7; }
.form-card .form-file-picker { position: relative; display: flex; align-items: center; gap: 16px; min-height: 88px; padding: 16px 18px; border: 1px dashed #9eb7cc; border-radius: 10px; background: #fff; cursor: pointer; transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
.form-card .form-file-picker:hover, .form-card .form-file-picker:focus-within { border-color: var(--blue); background: #f8fbff; box-shadow: 0 0 0 4px rgba(35,84,180,.1); }
.form-card .form-file-picker .form-file-icon { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 9px; background: #e9f0fb; color: var(--blue); font-size: 1.55rem; font-weight: 500; }
.form-card .form-file-copy { display: grid; gap: 2px; min-width: 0; }
.form-card .form-file-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font-size: .95rem; }
.form-card .form-file-copy small, .form-card .form-file-status { color: var(--muted); font-size: .78rem; font-weight: 400; }
.form-card .form-file-picker input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.form-card .form-file-status { display: block; margin-top: 2px; }
.form-card .checkbox-line { gap: 12px; padding: 15px 16px; border: 1px solid #d7e4ee; border-radius: 9px; background: #fff; font-size: .85rem; }
.form-card .checkbox-line input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--blue); }
.form-card .checkbox-line a:hover { color: var(--blue-dark); }
.form-card .dr-form > .button-primary, .form-card .step-actions .button-primary { min-height: 58px; }
.form-card .button-primary:hover { color: #fff; box-shadow: 0 10px 22px rgba(35,84,180,.2); }

/* The contact form echoes the navy brand panels used elsewhere on the site. */
.contact-section .form-card { position: relative; overflow: hidden; border: 1px solid #294a66; border-top: 4px solid #6793e8; border-radius: 20px; background: linear-gradient(145deg, #123752 0%, #0a2033 82%); box-shadow: 0 28px 60px rgba(8,31,50,.2); }
.contact-section .form-card::before { content: ""; position: absolute; top: -135px; right: -95px; width: 280px; height: 280px; border: 1px solid rgba(183,205,247,.14); border-radius: 50%; pointer-events: none; }
.contact-section .form-card > .eyebrow { color: #b7cdf7; }
.contact-section .form-card h3 { color: #fff; }
.contact-section .form-card > p { color: #d4e0ec; }
.contact-section .form-card .field { color: #f3f7fb; }
.contact-section .form-card .field span em { color: #ffb4a8; }
.contact-section .form-card .field input, .contact-section .form-card .field textarea { background: #f8fbff; border-color: #c6d7e6; }
.contact-section .form-card .field textarea { min-height: 155px; }
.contact-section .form-card .button-primary { background: #fff; color: var(--navy); }
.contact-section .form-card .button-primary:hover { background: #dce8ff; color: var(--navy); box-shadow: 0 10px 22px rgba(4,16,29,.25); }

/* Trustpilot provides the review content; the surrounding layout follows the site. */
.trustpilot-section { background: #f3f7fa; border-block: 1px solid var(--line); }
.trustpilot-layout { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: clamp(36px, 6vw, 90px); align-items: center; }
.trustpilot-intro h2 { max-width: 510px; margin: 17px 0 20px; font-size: clamp(2.6rem, 4.3vw, 4.7rem); }
.trustpilot-intro p { max-width: 460px; margin-bottom: 28px; }
.trustpilot-intro .text-button { border-bottom: 0; text-decoration: none; }
.trustpilot-content { min-width: 0; padding: clamp(22px, 3vw, 38px); border: 1px solid #d5e2eb; border-radius: 12px; background: #fff; }
.trustpilot-widget { width: 100%; min-height: 240px; }
.trustpilot-widget iframe { max-width: 100%; }
.trustpilot-fallback { min-height: 240px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.trustpilot-fallback > span { color: var(--blue); font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.trustpilot-fallback h3 { max-width: 430px; margin: 17px 0 12px; font-size: clamp(1.65rem, 2.7vw, 2.35rem); }
.trustpilot-fallback p { margin: 0 0 23px; }
.trustpilot-fallback a { display: inline-flex; align-items: center; gap: 10px; color: var(--blue); font-weight: 750; border-bottom: 1px solid currentColor; padding-bottom: 6px; }
.trustpilot-fallback a:hover { color: var(--blue-dark); }

/* Manually selected quotations, with a source link on every card. */
.trustpilot-section-selected { background: #fff; border: 0; color: var(--navy); }
.trustpilot-section-selected .trustpilot-layout { display: block; }
.trustpilot-section-selected .trustpilot-intro .eyebrow { color: var(--blue); }
.trustpilot-section-selected .trustpilot-intro h2 { max-width: 850px; font-size: clamp(2.8rem, 4.5vw, 4.9rem); color: var(--ink); }
.trustpilot-section-selected .trustpilot-intro p { max-width: 690px; margin-bottom: 18px; color: var(--muted); }
.trustpilot-section-selected .trustpilot-intro .text-button { color: var(--blue); }
.trustpilot-section-selected .trustpilot-content { padding: 0; margin-top: 38px; border: 0; border-radius: 0; background: transparent; }
.review-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 18px; }
.review-toolbar p { margin: 0; font-size: .9rem; color: var(--muted); }
.review-expand[hidden] { display: none; }
.review-carousel { position: relative; padding-inline: 56px; }
.review-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; padding: 0; display: grid; place-items: center; border: 1px solid #d7e4ee; border-radius: 50%; background: #fff; color: var(--blue); transition: background-color .2s ease, border-color .2s ease; }
.review-nav[hidden] { display: none; }
.review-nav:hover { background: #eff4f7; border-color: var(--blue); }
.review-nav-prev { left: 0; }
.review-nav-next { right: 0; }
.review-track { display: flex; align-items: stretch; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 2px; overscroll-behavior-x: contain; overflow-anchor: none; padding: 2px; scrollbar-width: none; -ms-overflow-style: none; }
.review-track::-webkit-scrollbar { display: none; }
.review-card { flex: 0 0 calc((100% - 32px) / 3); min-width: 0; min-height: 445px; padding: 32px; display: flex; flex-direction: column; background: linear-gradient(145deg, #f8fbfd, #eff5fa); border: 1px solid #d7e4ee; border-top: 4px solid var(--blue); border-radius: 18px; scroll-snap-align: start; }
.review-rating { margin-bottom: 20px; }
.review-rating img { width: 144px; height: 27px; }
.review-card h3 { margin: 0 0 14px; min-height: 2.6em; font-size: 1.2rem; line-height: 1.3; overflow-wrap: anywhere; }
.review-card h3 a { color: var(--navy); text-decoration: none; }
.review-card h3 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.review-copy { margin: 0 0 16px; font-size: .94rem; line-height: 1.65; overflow-wrap: anywhere; }
.review-copy p { margin: 0 0 14px; font-size: inherit; line-height: inherit; }
.review-copy p:last-child { margin-bottom: 0; }
.review-copy.is-collapsed { max-height: 9.9em; overflow: hidden; mask-image: linear-gradient(#000 80%, transparent); }
.review-expand { align-self: flex-start; margin: 0 0 20px; padding: 0; min-height: 32px; border: 0; background: transparent; color: var(--blue); font: inherit; font-size: .85rem; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.review-author { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 7px; font-size: .88rem; }
.review-author > :first-child { color: var(--navy); font-weight: 750; }
.review-source { align-self: flex-start; color: var(--muted); font-size: .8rem; text-decoration: underline; text-underline-offset: 3px; }
.review-expand:focus-visible, .review-track:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
@media (max-width: 960px) { .review-card { flex-basis: calc((100% - 16px) / 2); } }
@media (max-width: 620px) {
  .review-carousel { padding-inline: 50px; }
  .review-card { flex-basis: 100%; padding: 20px; }
  .review-toolbar { align-items: stretch; flex-direction: column; gap: 14px; }
  .review-toolbar p { max-width: none; }
}

.partner-section { background: #eff4f7; }
.partner-section > .container > p { max-width: 570px; margin: 0 auto 32px; }
.partner-logos { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; max-width: 940px; margin-inline: auto; }
.partner-logos > div { display: grid; place-items: center; min-height: 116px; padding: 21px; border: 1px solid var(--line); border-radius: 11px; background: #fff; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.partner-logos img { max-width: min(100%, 190px); max-height: 70px; width: auto; height: auto; filter: grayscale(1) contrast(1.12); opacity: .76; transition: filter .25s ease, opacity .25s ease; }
.partner-logos > div:hover { border-color: #bdd0e4; box-shadow: 0 12px 26px rgba(8,31,50,.09); transform: translateY(-2px); }
.partner-logos > div:hover img { filter: none; opacity: 1; }
@media (prefers-reduced-motion: reduce) { .partner-logos > div, .partner-logos img { transition: none; } }

/* Job Openings and the region mapper use the same fields and cards as this site. */
.mapped-jobs-listing .egjm-region-filter { max-width: none; margin: 0 0 32px; padding: clamp(20px, 3vw, 30px); border: 1px solid #d8e4ed; border-radius: 16px; background: #eff4f8; }
.mapped-jobs-listing .egjm-region-filter form { display: block; }
.mapped-jobs-listing .egjm-region-filter .awsm-filter-item-search { width: 100%; padding: 0; margin: 0 0 12px; }
.mapped-jobs-listing .egjm-region-filter .awsm-filter-items { display: flex !important; align-items: stretch; gap: 12px; flex-wrap: wrap; }
.mapped-jobs-listing .egjm-region-filter .awsm-filter-item { flex: 1 1 205px; width: auto; max-width: none; min-width: 0; padding: 0; }
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-wrapper { width: 100%; min-width: 0; }
.mapped-jobs-listing .egjm-region-filter .awsm-job-search,
.mapped-jobs-listing .egjm-region-filter .awsm-selectric { width: 100%; height: 56px; min-height: 56px; border: 1px solid #bdcfdc; border-radius: 8px; background: #fff; box-shadow: none; color: var(--ink); font: inherit; transition: border-color .18s ease, box-shadow .18s ease; }
.mapped-jobs-listing .egjm-region-filter .awsm-job-search { padding: 0 54px 0 17px; }
.mapped-jobs-listing .egjm-region-filter .awsm-job-search::placeholder { color: #708395; }
.mapped-jobs-listing .egjm-region-filter .awsm-job-search:focus,
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-open .awsm-selectric,
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-focus .awsm-selectric { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(35,84,180,.14); outline: none; }
.mapped-jobs-listing .egjm-region-filter .awsm-selectric .label { height: 54px; line-height: 54px; margin: 0 46px 0 17px; color: var(--ink); font-size: .95rem; font-weight: 650; }
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-arrow-drop { top: 50%; right: 12px; width: 32px; height: 32px; transform: translateY(-50%); border-radius: 50%; background: #e9f0fb; transition: background-color .18s ease; }
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-arrow-drop:after { top: 8px; right: auto; bottom: auto; left: 8px; margin: 0; width: 16px; height: 16px; border: 0; background: center / 16px 16px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 5 5 5 5-5' fill='none' stroke='%232354b4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); transform: rotate(0deg); transform-origin: center; transition: transform .18s ease; }
.mapped-jobs-listing .egjm-region-filter .awsm-selectric:hover .awsm-selectric-arrow-drop,
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-open .awsm-selectric-arrow-drop { background: #d9e7fb; }
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-open .awsm-selectric-arrow-drop:after { transform: rotate(180deg); }
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-items { top: calc(100% + 7px); border: 1px solid #d8e4ed; border-radius: 9px; background: #fff; box-shadow: 0 15px 35px rgba(9,32,51,.13); }
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-items li { padding: 11px 15px !important; color: var(--ink); font-size: .92rem; }
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-items li:hover,
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-items li.highlighted,
.mapped-jobs-listing .egjm-region-filter .awsm-selectric-items li.selected { background: #edf3fb; color: var(--blue); }
.mapped-jobs-listing .egjm-region-filter .awsm-job-search-icon-wrapper { color: var(--blue); line-height: 56px; }
.mapped-jobs-listing .awsm-job-wrap { max-width: none; }
.mapped-jobs-listing .awsm-job-wrap .awsm-job-listings { gap: 18px; }
.mapped-jobs-listing .awsm-job-wrap .awsm-job-item { display: flex; flex-direction: column; min-height: 265px; height: 100%; padding: 27px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.mapped-jobs-listing .awsm-job-wrap .awsm-job-item:hover { transform: translateY(-3px); border-color: #a9bfd6; box-shadow: var(--shadow); }
.mapped-jobs-listing .awsm-job-wrap .awsm-job-post-title { margin: 23px 0 10px; color: var(--ink); font-size: 1.35rem; font-weight: 700; line-height: 1.28; letter-spacing: -.047em; text-transform: none; transition: color .2s ease; }
.mapped-jobs-listing .awsm-job-wrap .awsm-job-item:hover .awsm-job-post-title { color: var(--blue); }
.mapped-jobs-listing .awsm-job-wrap .awsm-grid-right-col { margin-top: auto; }
.mapped-jobs-listing .awsm-job-wrap .awsm-job-specification-wrapper { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 18px; }
.mapped-jobs-listing .awsm-job-wrap .awsm-job-specification-item { margin: 0; padding: 7px 11px; border-radius: 30px; background: #e9f0fb; color: var(--blue); font-size: .76rem; font-weight: 750; line-height: 1.2; }
.mapped-jobs-listing .awsm-job-wrap .awsm-job-more { color: var(--blue); font-size: .89rem; font-weight: 750; }
.mapped-jobs-listing .job-card-top { align-items: flex-start; }
.mapped-jobs-listing .job-card-tags { min-width: 0; }
.mapped-jobs-listing .awsm-job-wrap .job-card-tags .awsm-job-specification-wrapper { margin-bottom: 0; }
.mapped-jobs-listing .awsm-job-wrap .job-card-tags .awsm-job-specification-item { font-size: .74rem; font-weight: 800; overflow-wrap: anywhere; }
.mapped-jobs-listing .job-date { flex-shrink: 0; padding-block: 7px; white-space: nowrap; }
.mapped-jobs-listing .awsm-job-wrap .job-card-excerpt { flex: 1; margin: 0 0 20px; color: var(--muted); font-size: .87rem; line-height: 1.55; }
.mapped-jobs-listing .awsm-job-wrap .awsm-job-more.text-link { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; font-size: .86rem; font-weight: 700; }
.mapped-jobs-listing .awsm-load-more-main a.awsm-load-more { border: 1px solid #bdcfdc; border-radius: 8px; color: var(--blue); font-weight: 750; }
.mapped-jobs-listing .awsm-load-more-main a.awsm-load-more:hover { background: #edf3fb; border-color: var(--blue); }

@media (max-width: 850px) {
  .home-hero { min-height: calc(100svh - 70px); }
  .home-hero-grid { width: min(100% - 36px, 1220px); }
  .hero-copy { max-width: 660px; padding: 75px 0; }
  .hero-copy h1 { font-size: clamp(3.8rem, 10vw, 6.6rem); }
  .hero-bottom { width: min(100% - 36px, 1220px); }
  .page-hero { margin-bottom: 0; }
  .page-hero-grid { grid-template-columns: 1fr; gap: 0; min-height: 0; }
  .page-hero-copy, .page-hero--reverse .page-hero-copy { padding: 72px 0 35px; }
  .page-hero--reverse .page-hero-media { order: 0; }
  .page-hero-media { min-height: 390px; margin: 0 0 -25px; border-width: 7px; }
  .page-hero--plain .page-hero-grid { min-height: 0; }
}

@media (max-width: 620px) {
  .form-card { padding: 25px 18px; }
  .mapped-jobs-listing .egjm-region-filter { padding: 19px; }
  .mapped-jobs-listing .egjm-region-filter .awsm-filter-items { flex-direction: column !important; }
  .mapped-jobs-listing .egjm-region-filter .awsm-filter-item { flex: 0 0 auto; width: 100%; }
  .mapped-jobs-listing .awsm-job-wrap .awsm-job-item { min-height: 0; padding: 22px; }
  .home-hero { min-height: calc(100svh - 70px); }
  .home-hero .hero-visual { min-height: 0; }
  .home-hero .hero-video-overlay { background: linear-gradient(90deg, rgba(5,21,36,.86), rgba(5,21,36,.5)), linear-gradient(0deg, rgba(5,21,36,.6), transparent 35%); }
  .home-hero-grid, .hero-bottom { width: min(100% - 34px, 1220px); }
  .hero-copy { padding: 70px 0 55px; }
  .hero-copy h1 { font-size: clamp(3.7rem, 13vw, 5.6rem); }
  .hero-copy > p { font-size: 1.04rem; }
  .hero-proof { gap: 10px; margin-top: 35px; font-size: .94rem; }
  .hero-proof .proof-stars { font-size: 1.15rem; }
  .hero-bottom { margin-top: 0; }
  .hero-bottom { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
  .hero-benefit { gap: 7px; white-space: normal; line-height: 1.3; }
  .hero-benefit svg { width: 18px; height: 18px; }
  .hero-benefit:not(:last-child) { border-right: 0; padding-right: 0; margin-right: 0; }
  .hero-benefit:last-child { grid-column: 1 / -1; }
  .page-hero-grid { width: min(100% - 34px, 1220px); }
  .page-hero-copy, .page-hero--reverse .page-hero-copy { padding: 59px 0 31px; }
  .page-hero-copy h1 { font-size: clamp(3rem, 12vw, 4.7rem); }
  .page-hero-media { min-height: 310px; border-radius: 10px 75px 10px 10px; }
  .page-hero--reverse .page-hero-media { border-radius: 75px 10px 10px 10px; }
  .page-hero--plain .page-hero-copy { padding: 64px 0; }
  #awsm-application-form { grid-template-columns: 1fr; }
  #awsm-application-form .awsm-job-form-group { grid-column: 1 / -1; }
  .partner-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .partner-logos > div { min-height: 100px; padding: 12px; }
  .partner-logos img { max-height: 58px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero .hero-visual video { display: none; }
  .home-hero .hero-visual { background: center / cover url('media/hero.jpg'); }
}

/* Job titles are content, not decorative hero artwork. Keep long titles readable. */
.job-detail-hero { padding: clamp(48px, 5vw, 72px) 0 66px; }
.job-detail-hero .back-link { margin-bottom: 28px; }
.job-detail-hero h1 {
  max-width: 1120px;
  margin: 17px 0 24px;
  font-size: clamp(2.4rem, 4vw, 3.75rem);
  line-height: 1.13;
  letter-spacing: -.035em;
  text-wrap: balance;
  overflow-wrap: break-word;
}
.job-detail-hero .job-meta { flex-wrap: wrap; }
.job-detail-hero .job-hero-apply { margin-top: 32px; }
@media (max-width: 620px) {
  .job-detail-hero { padding: 46px 0 54px; }
  .job-detail-hero h1 { font-size: clamp(2.15rem, 8.7vw, 2.9rem); }
}

/* The actual team portraits carry the About page; biographies open on hover or tap. */
.team-section { background: #fff; }
.team-grid { gap: 22px; }
.team-grid .team-person { position: relative; display: block; height: 460px; min-height: 0; padding: 0; overflow: hidden; border-radius: 10px; background: #dfe8ed; }
.team-person::after { content: ""; position: absolute; inset: 30% 0 0; background: linear-gradient(transparent, rgba(5, 21, 35, .86)); pointer-events: none; }
.team-person > img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transition: transform .35s ease; }
.team-person:hover > img { transform: scale(1.035); }
.team-person-front { position: absolute; z-index: 1; right: 26px; bottom: 27px; left: 26px; color: #fff; }
.team-person-front strong, .team-person-front > span, .team-person-front small { display: block; }
.team-person-front strong { font-size: clamp(1.4rem, 2vw, 1.8rem); line-height: 1.15; letter-spacing: -.03em; }
.team-person-front > span { margin-top: 7px; font-size: .85rem; color: #e1eaf3; }
.team-person-front small { margin-top: 19px; font-size: .78rem; font-weight: 700; }
.team-person-front small span { margin-left: 5px; }
.team-person-bio { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 32px; overflow-y: auto; background: rgba(9, 32, 51, .96); color: #fff; opacity: 0; visibility: hidden; transform: translateY(12px); pointer-events: none; transition: opacity .22s ease, visibility .22s ease, transform .22s ease; }
.team-person-bio .eyebrow { color: #b7cdf7; font-size: .7rem; line-height: 1.5; }
.team-grid .team-person-bio h3 { margin: 14px 0 19px; color: #fff; font-size: clamp(1.5rem, 2vw, 2rem); }
.team-grid .team-person-bio p { margin: 0; color: #e3edf4; font-size: .92rem; line-height: 1.65; }
.team-person-close { display: none; margin-top: 22px; color: #b7cdf7; font-size: .75rem; font-weight: 700; }
.team-person.is-open .team-person-close { display: block; }
.team-person.is-open .team-person-bio { opacity: 1; visibility: visible; transform: none; }
.team-person-toggle { position: absolute; z-index: 3; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.team-person-toggle:focus-visible { outline: 3px solid #b7cdf7; outline-offset: -6px; }
@media (hover: hover) {
  .team-person:hover .team-person-bio { opacity: 1; visibility: visible; transform: none; }
}
@media (max-width: 850px) {
  .team-grid .team-person { height: 440px; }
}
@media (max-width: 620px) {
  .team-grid .team-person { height: 430px; }
  .team-person-bio { padding: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .team-person > img, .team-person-bio { transition: none; }
}

/* About: figures, the six real process stages, and the complete partner gallery. */
.page-hero-about { margin-bottom: 0; z-index: 1; }
.about-stats { position: relative; padding: 78px 0 66px; background: #fff; border-block: 1px solid var(--line); }
.about-stats-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0; }
.about-stats-grid > div { display: flex; flex-direction: column; align-items: center; text-align: center; }
.about-stats-grid > div + div { border-left: 1px solid var(--line); }
.about-stats-grid dd { order: -1; margin: 0 0 9px; color: var(--ink); font-size: clamp(2.7rem, 4.5vw, 4.25rem); font-weight: 400; font-variant-numeric: tabular-nums; line-height: 1.1; letter-spacing: -.055em; white-space: nowrap; }
.about-stats-grid dt { color: var(--muted); font-size: 1rem; line-height: 1.4; }
.process-section { background: #f7f8f5; scroll-margin-top: 110px; }
.process-section > .container > .eyebrow { display: flex; justify-content: center; }
.process-section h2 { max-width: 920px; margin: 19px auto 0; text-align: center; }
.about-process-grid { position: relative; display: flex; flex-direction: column; gap: 24px; margin: 64px 0 0; padding: 0; list-style: none; }
.about-process-grid::before, .about-process-grid::after { content: ""; position: absolute; z-index: 0; top: 35px; bottom: 35px; left: calc(50% - 1px); width: 2px; }
.about-process-grid::before { background: #b7c7d4; }
.about-process-grid::after { background: var(--blue); transform: scaleY(var(--timeline-progress, 0)); transform-origin: top; }
.about-process-grid li { position: relative; z-index: 1; width: calc(50% - 38px); min-height: 180px; padding: 27px 30px 30px; border: 1px solid #d7e2ea; border-radius: 7px; background: #fff; box-shadow: 0 9px 23px rgba(10,32,51,.035); }
.about-process-grid li:nth-child(even) { margin-left: auto; }
.about-process-grid li::before { content: ""; position: absolute; top: 29px; left: calc(100% + 31px); width: 14px; height: 14px; border: 3px solid #f7f8f5; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 2px #8daac6; }
.about-process-grid li:nth-child(even)::before { left: -48px; }
.about-process-grid li::after { content: ""; position: absolute; top: 31px; right: -7px; width: 13px; height: 13px; transform: rotate(45deg); border-top: 1px solid #d7e2ea; border-right: 1px solid #d7e2ea; background: inherit; }
.about-process-grid li:nth-child(even)::after { right: auto; left: -7px; transform: rotate(225deg); }
.about-process-grid li:nth-child(3), .about-process-grid li:nth-child(4) { border-color: #214c96; background: #214c96; color: #fff; }
.about-process-grid li:nth-child(3)::after, .about-process-grid li:nth-child(4)::after { border-color: #214c96; }
.about-process-grid li > span { display: inline-block; color: var(--blue); font-size: .77rem; font-weight: 800; letter-spacing: .12em; }
.about-process-grid li:nth-child(3) > span, .about-process-grid li:nth-child(4) > span { color: #d5e5ff; }
.about-process-grid h3 { margin: 14px 0 10px; font-size: clamp(1.4rem, 2vw, 1.7rem); }
.about-process-grid p { max-width: 480px; margin: 0; font-size: .95rem; line-height: 1.65; }
.about-process-grid li:nth-child(3) p, .about-process-grid li:nth-child(4) p { color: #eef5ff; }
.about-process-grid.is-animated li { opacity: 0; transform: translateY(22px); transition: opacity .55s ease, transform .55s cubic-bezier(.2,.7,.2,1); }
.about-process-grid.is-animated li.is-visible { opacity: 1; transform: none; }
.about-process-grid.is-animated li::before { background: #b7c7d4; transition: background-color .4s ease, box-shadow .4s ease; }
.about-process-grid.is-animated li.is-visible::before { background: var(--blue); box-shadow: 0 0 0 2px #8daac6; }
.about-partners { background: #fff; }
.about-partners-heading { margin-bottom: 44px; }
.about-partners-heading h2 { margin: 17px 0 18px; font-size: clamp(1.4rem, 5vw, 4.4rem); white-space: nowrap; }
.about-partners-heading p { max-width: 670px; margin: 0; }
.about-partners-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.about-partners-grid li { display: grid; place-items: center; min-height: 130px; padding: 20px; border: 1px solid var(--line); border-radius: 8px; background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
.about-partners-grid img { width: auto; max-width: 100%; height: auto; max-height: 85px; object-fit: contain; filter: grayscale(1); opacity: .73; transition: filter .22s ease, opacity .22s ease; }
.about-partners-grid li:hover { border-color: #a6bdd3; box-shadow: 0 10px 25px rgba(8,31,50,.08); }
.about-partners-grid li:hover img { filter: none; opacity: 1; }
@media (max-width: 1000px) {
  .about-partners-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
  .page-hero-about { margin-bottom: -6px; }
  .about-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 14px; }
  .about-stats-grid > div + div { border-left: 0; }
  .about-stats-grid > div:nth-child(even) { border-left: 1px solid var(--line); }
  .about-partners-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .page-hero-about { margin-bottom: -6px; }
  .about-stats { padding: 54px 0 56px; }
  .about-stats-grid dd { font-size: clamp(2.3rem, 9vw, 3.25rem); }
  .about-stats-grid dt { font-size: .83rem; }
  .about-process-grid { gap: 22px; margin-top: 42px; padding-left: 30px; }
  .about-process-grid::before, .about-process-grid::after { left: 5px; }
  .about-process-grid li, .about-process-grid li:nth-child(even) { width: 100%; min-height: 0; margin-left: 0; padding: 22px; }
  .about-process-grid li::before, .about-process-grid li:nth-child(even)::before { left: -33px; top: 24px; }
  .about-process-grid li::after, .about-process-grid li:nth-child(even)::after { right: auto; left: -7px; top: 25px; transform: rotate(225deg); }
  .about-partners-heading h2 { font-size: clamp(1.25rem, 5.3vw, 2rem); }
  .about-partners-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .about-partners-grid li { min-height: 105px; padding: 13px; }
  .about-partners-grid img { max-height: 72px; }
}
@media (prefers-reduced-motion: reduce) {
  .about-partners-grid li, .about-partners-grid img { transition: none; }
  .about-process-grid.is-animated li { opacity: 1; transform: none; transition: none; }
  .about-process-grid::after { transform: none; }
}

/* Restored source copy uses the site's existing editorial rhythm. */
.approach-copy > p + p { margin-top: 18px; }
.home-recruitment-section { background: #f3f7fb; }
.home-recruitment-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(36px, 6vw, 88px); align-items: center; }
.home-recruitment-main h2 { max-width: 690px; margin: 20px 0 30px; font-size: clamp(2.8rem, 4.1vw, 4.25rem); line-height: 1.07; }
.home-recruitment-main p { max-width: 660px; margin-bottom: 17px; line-height: 1.7; }
.home-recruitment-main .button { margin-top: 18px; }
.home-recruitment-note { padding: clamp(34px, 4vw, 58px); border-top: 4px solid var(--blue); border-radius: 12px; background: #102438; box-shadow: 0 22px 48px rgba(16, 36, 56, .12); }
.home-recruitment-note .eyebrow { color: #a8c7ff; }
.home-recruitment-note h3 { max-width: 470px; margin: 22px 0 24px; color: #fff; font-size: clamp(2rem, 2.8vw, 2.8rem); line-height: 1.13; }
.home-recruitment-note p { max-width: 500px; margin: 0; color: #d8e3ec; line-height: 1.75; }
.jobs-source-intro { max-width: 540px; }
.jobs-source-intro p { margin: 0 0 13px; line-height: 1.65; }

.form-story > h3 { margin: 35px 0 16px; font-size: clamp(1.55rem, 2.5vw, 2.1rem); }
.form-story > p + p, .time-copy > p + p, .contact-grid > div > p + p { margin-top: 16px; }
.form-story > p, .time-copy > p, .contact-grid > div > p { line-height: 1.7; }
.time-copy .aside-card { margin-top: 34px; }
.contact-extra { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 52px; }
.contact-extra-card { padding: 34px 38px; border-top: 2px solid var(--blue); background: #f4f8fb; }
.contact-extra-card h3 { margin: 14px 0 26px; font-size: clamp(1.8rem, 2.8vw, 2.5rem); }
.contact-person { display: grid; gap: 6px; padding: 14px 0; border-top: 1px solid #d5e1eb; }
.contact-person strong { color: var(--ink); }
.contact-person-role { color: var(--muted); font-size: .88rem; }
.contact-person a { color: var(--blue); font-weight: 650; }
.contact-hours { margin: 0; }
.contact-hours > div { display: flex; justify-content: space-between; gap: 20px; padding: 9px 0; border-top: 1px solid #d5e1eb; }
.contact-hours dd { margin: 0; color: var(--ink); font-weight: 700; white-space: nowrap; }

.faq-section .section-heading > div:last-child { max-width: 550px; }
.faq-section .section-heading > div:last-child p + p { margin-top: 15px; }
.faq-lead { margin: 0 0 26px; }
.faq-stories { margin-top: 86px; padding-top: 65px; border-top: 1px solid var(--line); }
.faq-stories h2 { margin: 14px 0 34px; font-size: clamp(2.5rem, 4vw, 4rem); }
.faq-story-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.faq-story-grid figure { display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 27px; border: 1px solid var(--line); background: #f7fafc; }
.faq-story-grid blockquote { margin: 0; }
.faq-story-grid blockquote p { margin: 0 0 14px; line-height: 1.65; }
.faq-story-grid figcaption { margin-top: auto; padding-top: 18px; color: var(--blue); font-weight: 750; }

.about-story-section { background: #f6f9fb; }
.about-story-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(35px, 7vw, 110px); }
.about-story-grid h2 { margin: 19px 0 0; font-size: clamp(2.6rem, 4vw, 4.4rem); line-height: 1.08; }
.about-story-copy p { margin: 0 0 19px; line-height: 1.75; }
.about-inline-quote { grid-column: 1 / -1; max-width: 800px; margin: 35px 0 0; padding-left: 30px; border-left: 3px solid var(--blue); color: var(--ink); font-size: clamp(1.35rem, 2.3vw, 2.2rem); font-weight: 650; line-height: 1.4; }
.team-invite { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--line); }
.team-invite h3 { margin: 0; font-size: clamp(1.5rem, 2.6vw, 2.4rem); }
.about-process-grid p + p { margin-top: 13px; }
.about-confidence-section { background: #eaf1f6; }
.about-confidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(35px, 6vw, 90px); }
.about-confidence-grid > * { min-width: 0; }
.about-confidence-copy h2 { margin: 18px 0 26px; font-size: clamp(2.5rem, 4vw, 4.25rem); line-height: 1.08; overflow-wrap: anywhere; }
.about-confidence-copy p { line-height: 1.72; }
.about-confidence-copy .text-button { margin-top: 17px; }
.about-testimonials { display: grid; gap: 20px; }
.about-testimonials figure { margin: 0; padding: 30px; background: #fff; border: 1px solid #d7e3ec; }
.about-testimonials blockquote { margin: 15px 0 19px; color: var(--ink); line-height: 1.7; }
.about-testimonials figcaption { color: var(--blue); font-size: .88rem; font-weight: 750; }

@media (max-width: 850px) {
  .home-recruitment-grid, .about-story-grid, .about-confidence-grid, .trustpilot-layout { grid-template-columns: 1fr; gap: 32px; }
  .home-recruitment-note { max-width: 680px; }
  .faq-story-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .closing-actions { width: 100%; flex-direction: column; align-items: center; gap: 16px; }
  .closing-phone { display: inline-flex; align-items: center; min-height: 44px; }
  .trustpilot-intro h2 { font-size: clamp(2.45rem, 10vw, 3.6rem); }
  .trustpilot-content { padding: 22px 18px; }
  .trustpilot-fallback { min-height: 205px; }
  .contact-extra { grid-template-columns: 1fr; margin-top: 38px; }
  .contact-extra-card { padding: 26px 22px; }
  .team-invite { display: block; }
  .team-invite .text-button { margin-top: 18px; }
  .faq-stories { margin-top: 60px; padding-top: 45px; }
  .about-inline-quote { padding-left: 20px; }
  .about-testimonials figure { padding: 25px 22px; }
  .hero-benefit:last-child { grid-column: auto; }
}
