@font-face {
  font-family: DINPro;
  src: url("../fonts/DINPro.woff2") format("woff2");
  font-display: swap;
  font-weight: 400;
}
@font-face {
  font-family: DINPro;
  src: url("../fonts/DINPro-Bold.woff2") format("woff2");
  font-display: swap;
  font-weight: 700;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: #111; font-family: DINPro, Arial, sans-serif; }
main { padding-top: 70px; }
button, input { font: inherit; }
img { display: block; }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Heading block: title, button, and responsive height follow Design iRidi.
   The full-width image keeps its intrinsic ratio and stays on the right. */
.course-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 840px;
  background: #efefef;
}
.course-hero__image {
  position: absolute; z-index: -1; top: 0; right: 0;
  width: auto; height: 100%; max-width: none;
}
.course-hero__inner {
  display: flex; flex-direction: column; align-items: flex-start;
  justify-content: center; width: 80%; min-height: 840px;
  margin: auto; padding: 120px 0;
}
.course-hero__tags { display: flex; gap: 15px; margin-bottom: var(--iridi-desc-margin-top); }
.course-hero__tags span { padding: 8px 14px; border-radius: 6px; background: #fff; font-size: 18px; line-height: 1; }
.course-hero h1 {
  max-width: 950px; margin: 0;
  font-size: var(--iridi-title-font-size);
  font-weight: var(--iridi-title-font-weight);
  line-height: 1.1;
  color: var(--iridi-title-color);
}
.course-hero p {
  max-width: 900px; margin: var(--iridi-desc-margin-top) 0 0;
  font-size: var(--iridi-desc-font-size);
  line-height: 1.45;
  color: var(--iridi-desc-color);
}
.course-button {
  display: inline-flex; align-items: center; justify-content: center;
  box-sizing: border-box; width: 400px; max-width: 100%; min-height: 60px;
  padding: 0 16px; border: 2px solid transparent; border-radius: 0;
  background: #0079ff; color: #fff;
  font: 400 21px/1.15 DINPro, Arial, sans-serif;
  text-align: center; text-decoration: none; cursor: pointer;
  transition: background-color .2s ease;
}
.course-button:hover { background: #0057b7; }
.course-button:focus-visible, a:focus-visible, input:focus-visible {
  outline: 3px solid #143c75; outline-offset: 2px;
}
.course-hero__button { margin-top: calc(2 * var(--iridi-desc-margin-top)); }

/* Mirrored standard block: library height, title/description tokens,
   and its 5vw/10vw desktop padding. */
.course-intro {
  display: flex; flex-direction: row;
  min-height: var(--iridi-block-min-height);
  background: #fff;
}
.course-intro__image, .course-intro__copy { width: 50%; min-width: 0; }
.course-intro__image { overflow: hidden; }
.course-intro__image img { width: 100%; height: 100%; object-fit: cover; }
.course-intro__copy {
  display: flex; flex-direction: column; justify-content: flex-start;
  align-items: flex-start; padding: 100px 10vw 100px 5vw;
}
.course-intro__copy h2 {
  margin: 0;
  font-size: var(--iridi-title-font-size);
  font-weight: var(--iridi-title-font-weight);
  line-height: 1.1; color: var(--iridi-title-color);
}
.course-intro__copy p {
  margin: var(--iridi-desc-margin-top) 0 0;
  font-size: var(--iridi-desc-font-size);
  line-height: 1.45; color: var(--iridi-desc-color);
}
.course-intro__copy p + p { margin-top: 1em; }

/* Column block: shared BLOCK_COLUMNS.css provides the heading, text,
   spacing, card padding, and grid behavior; this page uses two columns. */
.course-program {
  --block-columns-background: #eee;
  --block-columns-color: #111;
  --iridi-h3-font-size: 32px;
}
.course-program__inner { margin: auto; }
.course-program__grid, .course-modules .block_columns_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.course-modules .block_columns_grid { padding-left: 0; }
.course-program__grid .block_columns_item { padding-top: 0; border-top: 0; }
.course-program__grid .block_columns_item_title { margin: 0; }
.course-program__grid .block_columns_item_desc { margin-top: 20px; }
.course-modules { margin-top: 110px; }
.course-modules .block_columns_item {
  display: flex; align-items: center; justify-content: center;
  min-height: 140px; text-align: center;
  font-size: var(--iridi-h3-font-size); font-weight: 700; line-height: 1.1;
}

/* The form is a page-specific composite block; its outer spacing,
   heading, lead and card padding use the library variables. */
.course-request { padding: var(--iridi-block-padding); background: #fff; }
.course-request__panel {
  display: grid; grid-template-columns: 1fr 1fr;
  min-height: 640px; margin: auto; background: #eee;
}
.course-request__copy {
  display: flex; flex-direction: column; min-width: 0;
  padding: var(--iridi-grid-card-padding);
}
.course-request__copy h2 {
  margin: 0; font-size: var(--iridi-title-font-size);
  font-weight: var(--iridi-title-font-weight);
  line-height: 1.1; color: var(--iridi-title-color);
}
.course-request__lead {
  max-width: 70ch; margin: var(--iridi-desc-margin-top) 0 0;
  font-size: var(--iridi-desc-font-size); line-height: 1.45;
  color: var(--iridi-desc-color);
}
.course-request__privacy {
  margin: 20px 0 30px;
  font-size: 14px; line-height: 1.35;
}
.course-request__privacy a { color: #1788ee; }
.course-request__form { display: grid; gap: 20px; margin-top: auto; }
.course-request__form input {
  width: 100%; height: 60px; padding: 0 16px;
  border: 1px solid transparent; border-radius: 0; background: #fff;
  color: #111; font-size: var(--iridi-desc-font-size);
}
.course-request__form input::placeholder { color: #989898; }
.course-request__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.course-request__form .course-button { width: 100%; }
.course-request__status { margin: 0; font-size: 16px; line-height: 1.25; }
.course-request__status:empty { display: none; }
.course-request__image { min-width: 0; }
.course-request__image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

@media (min-width: 2251px) {
  .course-hero, .course-hero__inner { min-height: 1000px; }
  .course-hero__inner { padding: 170px 0; }
  .course-button { width: 500px; min-height: 80px; font-size: 28px; }
  .course-intro__copy { padding: 120px 10vw 120px 5vw; }
  .course-modules { margin-top: 120px; }
  .course-modules .block_columns_item { min-height: 180px; }
  .course-request__panel { min-height: 800px; }
  .course-request__privacy { font-size: 16px; }
}

@media (max-width: 1600px) {
  .course-hero, .course-hero__inner { min-height: 700px; }
  .course-hero__inner { padding: 100px 0; }
  .course-program { --iridi-h3-font-size: 28px; }
  .course-modules { margin-top: 80px; }
  .course-modules .block_columns_item { min-height: 120px; }
  .course-request__panel { min-height: 560px; }
}

@media (max-width: 1300px) {
  .course-hero, .course-hero__inner { min-height: 600px; }
  .course-hero__inner { padding: 80px 0; }
  .course-hero__tags span { font-size: 14px; }
  .course-intro__copy { padding: 60px 10vw 60px 5vw; }
  .course-program { --iridi-h3-font-size: 24px; }
  .course-modules .block_columns_item { min-height: 100px; }
  .course-request__panel { min-height: 490px; }
  .course-request__form { gap: 12px; }
  .course-request__form input { height: 50px; }
  .course-request__row { gap: 12px; }
  .course-request__privacy { font-size: 12px; }
}

@media (max-width: 1000px) {
  .course-hero, .course-hero__inner { min-height: 470px; }
  .course-hero__inner { padding: 60px 0; }
  .course-hero__tags { margin-bottom: 20px; }
  .course-hero__button { margin-top: 40px; }
  .course-program { --iridi-h3-font-size: 21px; }
  .course-intro { flex-direction: column-reverse; min-height: 0; }
  .course-intro__image, .course-intro__copy { width: 100%; }
  .course-intro__image { aspect-ratio: 1.5; }
  .course-intro__copy { padding: 50px 10vw 30px; }
  .course-program__grid, .course-modules .block_columns_grid { grid-template-columns: 1fr; }
  .course-modules { margin-top: 70px; }
  .course-modules .block_columns_grid { gap: 14px; }
  .course-modules .block_columns_item { min-height: 96px; }
  .course-request__panel { display: flex; flex-direction: column; min-height: 0; }
  .course-request__copy { display: contents; }
  .course-request__copy h2, .course-request__lead, .course-request__privacy { margin-left: var(--iridi-grid-card-padding); margin-right: var(--iridi-grid-card-padding); }
  .course-request__copy h2 { margin-top: var(--iridi-grid-card-padding); }
  .course-request__image { order: 1; margin: 0 var(--iridi-grid-card-padding); }
  .course-request__image img { height: auto; aspect-ratio: 1.5; }
  .course-request__form { order: 2; margin: 20px var(--iridi-grid-card-padding) var(--iridi-grid-card-padding); }
}

@media (max-width: 700px) {
  .course-hero::before {
    content: "";
    position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background: linear-gradient(to bottom, #efefef 0%, rgba(239, 239, 239, .97) 35%, rgba(239, 239, 239, .72) 65%, transparent 92%);
  }
  .course-hero__inner {
    position: relative; z-index: 1;
    width: 100%; align-items: center; justify-content: flex-start;
    padding: 50px 10vw 30px; text-align: center;
  }
  .course-hero__tags { gap: 10px; }
  .course-hero__tags span { padding: 6px 10px; font-size: 12px; }
  .course-hero h1 { max-width: 560px; }
  .course-hero__desktop-break { display: none; }
  .course-hero p { max-width: 490px; }
  .course-hero__button { width: 100%; margin-top: auto; }
  .course-intro__copy { align-items: center; text-align: center; }
  .course-program { --iridi-h3-font-size: 18px; }
  .course-program .block_columns_title { width: 100%; max-width: none; text-align: center; }
  .course-program__grid { text-align: center; }
  .course-program__grid .block_columns_item_desc { margin-top: 12px; }
  .course-modules { margin-top: 60px; }
  .course-modules .block_columns_item { min-height: 78px; }
  .course-request__copy h2, .course-request__lead, .course-request__privacy { text-align: center; }
  .course-request__row { grid-template-columns: 1fr; }
  .course-request__form input { height: 58px; }
  .course-request__form .course-button { min-height: 58px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .course-button { transition: none; }
}
