/* Keep the company's own footage as the focus, with clear type on the image. */
.home-hero { min-height: calc(100svh - 119px); }
.home-hero .hero-video-overlay {
  background: linear-gradient(90deg, rgba(5, 21, 36, .84), rgba(5, 21, 36, .57) 51%, rgba(5, 21, 36, .12) 100%),
    linear-gradient(0deg, rgba(5, 21, 36, .72), transparent 30%);
}
.home-hero-grid { align-items: flex-end; padding-block: clamp(70px, 10vh, 130px) clamp(54px, 8vh, 100px); }
.hero-copy {
  max-width: 790px;
  padding: 0;
  color: #fff;
}
.hero-copy .eyebrow { color: #dce9f8; }
.hero-copy .eyebrow-line { background: #b9d0f7; }
.hero-copy h1 {
  max-width: 800px;
  margin: 19px 0 27px;
  font-size: clamp(4.25rem, 7.5vw, 7.5rem);
  line-height: .98;
  letter-spacing: -.06em;
}
.hero-copy h1 em { font: inherit; font-style: normal; color: #d7e5fb; }
.hero-copy > p { max-width: 560px; color: #e7eef4; font-size: clamp(1.05rem, 1.35vw, 1.18rem); line-height: 1.62; }
.hero-copy .hero-actions { margin-top: 30px; }
.hero-copy .button-primary { background: var(--blue); color: #fff; }
.hero-copy .button-primary:hover { background: #3768c8; color: #fff; }
.hero-copy .button-outline { color: #fff; border-color: rgba(255, 255, 255, .75); background: rgba(10, 32, 51, .13); }
.hero-copy .button-outline:hover { color: var(--navy); border-color: #fff; background: #fff; }
.hero-proof { margin-top: 32px; color: #e7eef4; font-size: .92rem; }
.hero-proof .proof-stars { color: #e7b66c; font-size: 1.08rem; }
.hero-bottom { padding: 24px 0 25px; }

.path-section .section-heading { align-items: end; }
.path-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: end; }
.path-candidate { min-height: 510px; }
.path-employer { min-height: 440px; }
.path-card { border-radius: 22px; box-shadow: 0 17px 32px rgba(8, 31, 50, .1); }
.path-card:after { background: linear-gradient(180deg, rgba(5, 21, 35, .02) 18%, rgba(5, 21, 35, .86) 100%); }
.path-card .path-content { padding: clamp(28px, 3.3vw, 48px); }
.path-card .round-arrow { border-color: rgba(255, 255, 255, .55); }

/* Draw navigation arrows consistently instead of relying on platform fonts. */
.icon-arrow {
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  vertical-align: -.18em;
}
.button .icon-arrow { width: 17px; height: 17px; }
.button span[aria-hidden="true"] { display: inline-flex; align-items: center; }
.round-arrow .icon-arrow { width: 22px; height: 22px; }
.service-arrow .icon-arrow { width: 22px; height: 22px; }
.text-link .icon-arrow, .team-person-front .icon-arrow { width: 16px; height: 16px; }
.back-link .icon-arrow { margin-right: 4px; }

.service-grid { gap: 18px; }
.service-card { border-radius: 18px; padding: 34px; }
.service-card:first-child { border-color: #d8e7f5; background: #eaf2f9; }
.service-card:first-child:hover { background: #e0eef9; }
.service-card h3 { letter-spacing: -.025em; }
.home-recruitment-note { border-radius: 18px; }

.page-hero-media { border-radius: 22px 72px 22px 22px; }
.page-hero--reverse .page-hero-media { border-radius: 72px 22px 22px 22px; }
.page-hero--time .page-hero-media { border-radius: 22px 72px 22px 22px; }

@media (max-width: 850px) {
  .home-hero { min-height: calc(100svh - 70px); }
  .home-hero-grid { padding-block: 75px 50px; }
  .hero-copy { max-width: 650px; padding: 0; }
  .hero-copy h1 { font-size: clamp(3.5rem, 8vw, 5.5rem); }
  .path-grid { grid-template-columns: 1fr 1fr; }
  .path-candidate, .path-employer { min-height: 410px; }
}
@media (max-width: 620px) {
  .home-hero { min-height: calc(100svh - 70px); }
  .home-hero .hero-video-overlay { background: linear-gradient(0deg, rgba(5, 21, 36, .92), rgba(5, 21, 36, .68) 62%, rgba(5, 21, 36, .2)); }
  .home-hero-grid { padding-block: 75px 34px; align-items: flex-end; }
  .hero-copy { width: 100%; padding: 0; }
  .hero-copy h1 { font-size: clamp(3.15rem, 11.2vw, 4.8rem); margin-block: 17px 20px; }
  .hero-copy > p { font-size: .98rem; }
  .hero-copy .hero-actions { margin-top: 23px; }
  .hero-proof { margin-top: 22px; }
  .hero-bottom { padding-block: 19px; }
  .path-grid { grid-template-columns: 1fr; }
  .path-candidate, .path-employer { min-height: 390px; }
  .service-card { padding: 28px; }
  .page-hero-media, .page-hero--reverse .page-hero-media, .page-hero--time .page-hero-media { border-radius: 18px 60px 18px 18px; }
}

/* Phone and tablet layouts: allow content to shrink without hiding overflow. */
.page-hero-grid > *, .content-layout > *, .form-layout > *,
.contact-grid > *, .time-grid > *, .job-detail-grid > * { min-width: 0; }
.article-body { overflow-wrap: anywhere; }
.page-hero-copy h1 { overflow-wrap: anywhere; }
.form-step, .faq-topic, #fra-afstemning-til-opstart { scroll-margin-top: 90px; }
#form, #ansoeg { scroll-margin-top: 110px; }
#form-feedback, .awsm-application-message { scroll-margin-top: 110px; }
.form-file-status { overflow-wrap: anywhere; }
.site-nav .nav-group .nav-dropdown { display: none; }
.site-nav .nav-group.is-open .nav-dropdown { display: grid; }
.site-nav .nav-group .nav-caret svg { transform: none; }
.site-nav .nav-group .nav-caret[aria-expanded="true"] svg { transform: rotate(180deg); }
.faq-item summary span {
  display: grid; place-items: center; align-self: center;
  flex: 0 0 24px; width: 24px; height: 24px; margin-inline: 6px; line-height: 1;
}
.faq-item[open] summary span { transform: none; font-size: 0; }
.faq-item[open] summary span::after { content: "−"; font-size: 24px; }

@media (max-width: 1100px) {
  .mapped-jobs-listing .awsm-job-wrap .awsm-job-listings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-bottom { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; }
  .hero-benefit { min-width: 0; white-space: normal; line-height: 1.4; }
  .hero-benefit:not(:last-child) { border-right: 0; padding-right: 0; margin-right: 0; }
}

@media (max-width: 960px) {
  #form, #ansoeg { scroll-margin-top: 90px; }
  .section-heading { flex-direction: column; align-items: stretch; gap: 24px; }
  .section-heading > div { min-width: 0; }
  .section-heading > p { max-width: 620px; margin: 0; }
  .path-section .section-heading { align-items: stretch; }
  .path-section .path-action {
    flex: 0 0 auto; box-sizing: border-box;
    width: min(200px, 100%); min-height: 52px;
    line-height: 1.25; text-align: center;
  }
  .text-button { min-height: 44px; }
  .aside-phone, .contact-person a, .review-author a { display: flex; align-items: center; min-height: 44px; }
  .aside-phone { gap: 8px; }
  .home-hero { min-height: calc(100svh - 105px); }
  .site-nav { max-height: calc(100dvh - 105px); }
  .menu-toggle, .nav-caret { min-width: 44px; min-height: 44px; }
  .site-nav .nav-dropdown a { display: flex; align-items: center; min-height: 44px; }
  .form-card .field input:not([type="file"]), .form-card .field textarea,
  .form-card .field select, #awsm-application-form .awsm-job-form-control,
  .mapped-jobs-listing .egjm-region-filter .awsm-job-search,
  .mapped-jobs-listing .egjm-region-filter .awsm-selectric .label { font-size: 16px; }
  .field, .form-row > * { min-width: 0; }
  .field input[type="date"] { min-width: 0; max-width: 100%; }
}

@media (max-width: 620px) {
  .section-heading { display: flex; }
  .mapped-jobs-listing .awsm-job-wrap .awsm-job-listings { grid-template-columns: minmax(0, 1fr); }
  .page-hero-copy > .eyebrow { display: block; font-size: .65rem; letter-spacing: .12em; line-height: 1.6; }
  .page-hero--plain .page-hero-copy h1 { font-size: clamp(1.85rem, 8.3vw, 3.2rem); }
  .about-confidence-copy h2 { font-size: clamp(2rem, 8.6vw, 2.6rem); text-wrap: balance; }
  .job-detail-hero h1 { font-size: clamp(1.85rem, 7.4vw, 2.6rem); }
  .job-detail-hero .job-meta { flex-direction: column; align-items: flex-start; gap: 8px; }
  .job-detail-hero .job-meta > span:nth-child(2) { display: none; }
  .contact-details { margin-bottom: 0; }
  .home-hero { min-height: calc(100svh - 70px); }
  .site-nav { max-height: calc(100dvh - 70px); }
  .page-hero-copy h1 { font-size: clamp(2.4rem, 10.5vw, 4rem); line-height: 1.08; }
  .latest-jobs .section-heading { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
  .hero-bottom { gap: 14px 12px; }
  .hero-benefit:last-child { grid-column: auto; }
  .footer-grid a, .contact-details strong, .contact-person a { overflow-wrap: anywhere; }
  .button { white-space: normal; text-align: center; }
  .step-actions { flex-direction: column; flex-wrap: nowrap; }
  .step-actions .button { flex: 0 0 auto; width: 100%; min-height: 58px; }
  .review-carousel {
    display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px;
    grid-template-areas: "previous . next" "reviews reviews reviews";
    gap: 16px; padding-inline: 0;
  }
  .review-track { grid-area: reviews; min-width: 0; }
  .review-nav { position: static; transform: none; }
  .review-nav-prev { grid-area: previous; }
  .review-nav-next { grid-area: next; }
  .review-expand { min-height: 44px; }
  .footer-grid > div:not(:first-child) a { min-height: 32px; padding-block: 6px; }
  .closing-cta { padding-block: 48px; }
  .closing-cta .container { width: min(100% - 40px, 420px); }
  .closing-inner { align-items: center; gap: 28px; text-align: center; }
  .closing-inner > div { width: 100%; }
  .closing-inner h2 {
    max-width: 20ch; margin: 16px auto 0;
    font-size: clamp(1.9rem, 7.8vw, 2.35rem); line-height: 1.15;
    text-wrap: balance;
  }
  .closing-actions { gap: 12px; white-space: normal; }
  .closing-actions .button { width: 100%; min-height: 56px; font-size: 1rem; }
  .closing-phone { justify-content: center; width: 100%; min-height: 44px; font-size: .95rem; }
  .site-footer { padding: 44px 0 20px; }
  .site-footer .container { width: min(100% - 40px, 420px); }
  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "about about" "jobs company" "contact contact";
    gap: 28px 24px;
  }
  .footer-grid > div { min-width: 0; }
  .footer-about { grid-area: about; }
  .footer-about img { max-width: 190px; margin-bottom: 20px; }
  .footer-about p { max-width: none; margin-bottom: 14px; font-size: .9rem; line-height: 1.65; }
  .footer-about p:last-child { margin-bottom: 0; }
  .footer-links { border-top: 1px solid #2c465b; padding-top: 22px; }
  .footer-links-jobs { grid-area: jobs; }
  .footer-links-company { grid-area: company; }
  .footer-grid h3 { margin-bottom: 12px; font-size: 1rem; line-height: 1.3; }
  .footer-grid > div:not(:first-child) a {
    min-height: 44px; padding-block: 10px; margin-bottom: 0;
    font-size: .9rem; line-height: 1.5;
  }
  .footer-contact {
    grid-area: contact; padding: 22px 20px;
    border: 1px solid #2c465b; border-radius: 14px; background: #112d43;
  }
  .footer-grid .footer-contact > a:first-of-type { color: #fff; font-size: 1.1rem; font-weight: 700; }
  .footer-grid .footer-contact > a:last-child { margin-top: 10px; padding-top: 16px; border-top: 1px solid #2c465b; color: #fff; font-weight: 700; }
  .footer-bottom { margin-top: 28px; padding-top: 18px; gap: 8px; }
  .footer-bottom > span { line-height: 1.5; }
  .footer-bottom > div { flex-wrap: wrap; gap: 0 18px; }
  .footer-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
}

/* On touch screens a biography grows with its text and has a separate close target. */
@media (any-pointer: coarse), (max-width: 960px) {
  .nav-caret { min-width: 44px; min-height: 44px; }
  .form-card .field input:not([type="file"]), .form-card .field textarea,
  .form-card .field select, #awsm-application-form .awsm-job-form-control { font-size: 16px; }
  .team-grid .team-person.is-open { height: auto; }
  .team-person.is-open > img, .team-person.is-open .team-person-front { display: none; }
  .team-person.is-open .team-person-bio {
    position: relative; min-height: 430px; padding: 62px 26px 26px;
    justify-content: flex-start; overflow: visible; pointer-events: auto;
    background: var(--navy);
  }
  .team-person.is-open .team-person-toggle {
    inset: 12px 12px auto auto; width: 44px; height: 44px;
    border-radius: 50%; background: #e7effb; color: var(--navy);
  }
  .team-person.is-open .team-person-toggle::after { content: "\00d7"; font-size: 28px; line-height: 1; }
  .team-person.is-open .team-person-close { display: none; }
}
