html {
  overflow-x: clip !important;
}

.integplan-section-page {
  overflow-x: clip;
  --ip-brand: #d76117;
  --ip-brand-dark: #a9480f;
  --ip-brand-soft: #fbe7d9;
  --ip-ink: #3e3f41;
  --ip-muted: #58595b;
  --ip-border: #d9d9d9;
}

.integplan-section-page .content > .container-bg {
  width: 100%;
  padding-right: 0;
  padding-left: 0;
}

.integplan-section-page .node__content,
.integplan-section-page .field--name-field-block-builder,
.integplan-section-page .gavias-blockbuilder-content {
  overflow: visible;
}

.integplan-section-page .ip-section-layout {
  display: grid;
  grid-template-columns: 176px minmax(0, 1fr);
  gap: 20px;
  width: min(calc(100% - 24px), 1600px);
  margin: 0 auto;
  padding: 34px 0 72px;
  overflow: visible;
}

.integplan-section-page .ip-section-sidebar {
  align-self: stretch;
  padding-top: 52px;
  min-width: 0;
}

.integplan-section-page .ip-section-sidebar > .ip-section-nav {
  position: sticky;
  top: 140px;
  width: 100%;
  max-height: calc(100vh - 164px);
  overflow-y: auto;
  scrollbar-width: thin;
}

@media (min-width: 1100px) {
  .integplan-section-page .ip-section-sidebar > .ip-section-nav {
    /* Keep the rail near the viewport edge without detaching it on ultrawide screens. */
    margin-left: min(0px, max(-172px, calc(808px - 50vw)));
  }
}

@media (min-width: 1680px) {
  .integplan-section-page .ip-section-sidebar > .ip-section-nav {
    width: 208px;
  }
}

.integplan-section-page .ip-section-content {
  min-width: 0;
  width: 100%;
  max-width: 1404px;
  margin: 0;
}

.integplan-section-page .ip-section-mobile {
  display: none;
}

.integplan-section-page .ip-section-nav__title {
  margin: 0 0 8px;
  color: var(--ip-muted);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.4;
  text-transform: none;
  letter-spacing: 0;
}

.integplan-section-page .ip-section-nav__list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-left: 2px solid var(--ip-border);
}

.integplan-section-page .ip-section-nav__item {
  margin: 0;
  padding: 0;
}

.integplan-section-page .ip-section-nav__link,
.integplan-section-page .ip-section-nav__link:link,
.integplan-section-page .ip-section-nav__link:visited {
  display: block;
  margin-left: -2px;
  border-left: 2px solid transparent;
  padding: 9px 13px;
  color: var(--ip-muted);
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.35;
  text-decoration: none;
  transition: color 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
}

.integplan-section-page .ip-section-nav__link:hover,
.integplan-section-page .ip-section-nav__link:focus-visible {
  color: var(--ip-brand-dark);
  background: rgba(251, 231, 217, 0.55);
}

.integplan-section-page .ip-section-nav__link.is-active,
.integplan-section-page .ip-section-nav__link[aria-current="location"] {
  border-left-color: var(--ip-brand);
  color: var(--ip-brand-dark);
  background: var(--ip-brand-soft);
  font-weight: 700;
}

.integplan-section-page .ip-section-nav__link:focus-visible,
.integplan-section-page .ip-section-mobile > summary:focus-visible {
  outline: 3px solid rgba(41, 92, 99, 0.35);
  outline-offset: 2px;
}

.integplan-section-page .gavias-blockbuilder-content .gbb-row[id] {
  scroll-margin-top: 152px;
}

.integplan-section-page .ip-section-builder > .gbb-row-wrapper,
.integplan-section-page .ip-section-builder .gbb-row {
  background-color: #fff !important;
  background-image: none !important;
}

/* Native Builder buttons at the end of the E-Learning and certificate
   content areas. Keep their layout and interaction styling isolated from
   other Gavias buttons and from the course filter controls above. */
.integplan-section-page.integplan-training-page
  .ip-section-builder
  .ip-weiterbildung-cta-row
  > .bb-inner {
  padding-top: 0 !important;
  padding-bottom: 14px !important;
}

.integplan-section-page.integplan-training-page
  .ip-section-builder
  a.gsc-button.ip-weiterbildung-cta,
.integplan-section-page.integplan-training-page
  .ip-section-builder
  a.gsc-button.ip-weiterbildung-cta:visited {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 260px;
  min-height: 52px;
  max-width: 100%;
  margin: 0 auto;
  border: 1px solid var(--ip-brand) !important;
  border-radius: 999px !important;
  padding: 13px 30px !important;
  background: var(--ip-brand) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  opacity: 1;
  font-family: "Raleway", sans-serif;
  font-size: 1.9rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-align: center;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  box-shadow: 0 5px 12px rgba(62, 63, 65, 0.14);
  transition: background-color 0.18s ease, border-color 0.18s ease,
    box-shadow 0.18s ease, transform 0.18s ease;
}

.integplan-section-page.integplan-training-page
  .ip-section-builder
  a.gsc-button.ip-weiterbildung-cta:hover,
.integplan-section-page.integplan-training-page
  .ip-section-builder
  a.gsc-button.ip-weiterbildung-cta:focus-visible {
  border-color: var(--ip-brand-dark) !important;
  background: var(--ip-brand-dark) !important;
  color: #fff !important;
  box-shadow: 0 7px 16px rgba(62, 63, 65, 0.18);
  transform: translateY(-1px);
}

.integplan-section-page.integplan-training-page
  .ip-section-builder
a.gsc-button.ip-weiterbildung-cta:focus-visible {
  outline-color: rgba(41, 92, 99, 0.72) !important;
  outline-style: solid !important;
  outline-width: 3px !important;
  outline-offset: 3px !important;
}

.integplan-section-page.integplan-training-page
  .ip-section-builder
  a.gsc-button.ip-weiterbildung-cta:active {
  box-shadow: 0 3px 8px rgba(62, 63, 65, 0.14);
  transform: translateY(0);
}

/* Builder 19 puts its standard row padding on both sides of the transition
   from the overview heading to the course View. Keep the section breathing
   room above the heading, but avoid doubling it before the filters. */
.integplan-section-page
  .ip-section-builder
  > .gbb-row-wrapper:has(> #weiterbildungsangebote)
  > #weiterbildungsangebote
  > .bb-inner {
  padding-bottom: 4px !important;
}

.integplan-section-page
  .ip-section-builder
  > .gbb-row-wrapper:has(> #weiterbildungsangebote)
  + .gbb-row-wrapper
  > .gbb-row
  > .bb-inner {
  padding-top: 4px !important;
  padding-bottom: 24px !important;
}

/* The overview View and the following Seminarleitungen section each carry
   Builder default spacing. Collapse that doubled boundary without changing
   the internal card grid or the spacing of any other section. */
.integplan-section-page
  .ip-section-builder
  #seminarleitungen
  > .bb-inner {
  padding-top: 20px !important;
}

.integplan-section-page #views-exposed-form-courses-block-2 > .form-item label {
  text-transform: none;
  letter-spacing: 0;
}

/* Restrained course-overview controls. These page-scoped rules intentionally
   leave the View, native selects, AJAX behavior, and Builder content intact. */
.integplan-section-page #views-exposed-form-courses-block-2 {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 16px;
  align-items: end;
  margin-bottom: 24px;
  border: 0;
  border-radius: 0;
  padding: 0;
  background-color: #fff !important;
}

.integplan-section-page #views-exposed-form-courses-block-2 > .form-item {
  min-width: 0;
  margin: 0 !important;
}

.integplan-section-page #views-exposed-form-courses-block-2 > .form-item label {
  display: block;
  margin: 0 0 7px;
  color: var(--ip-muted);
  text-align: center;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.35;
}

.integplan-section-page #views-exposed-form-courses-block-2 .form-select {
  display: block;
  width: 100%;
  height: 44px !important;
  min-height: 44px !important;
  border: 1px solid #b7b7b7 !important;
  border-radius: 999px !important;
  padding: 0 44px 0 18px !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%2358595b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 12px 8px !important;
  color: var(--ip-ink);
  font-size: 1.4rem;
  line-height: normal;
  text-overflow: ellipsis;
  appearance: none;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.integplan-section-page #views-exposed-form-courses-block-2 .form-select:hover {
  border-color: #898989 !important;
}

.integplan-section-page #views-exposed-form-courses-block-2 .form-select:focus {
  border-color: var(--ip-brand-dark) !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(215, 97, 23, 0.2);
}

/* Filter help: a Views filter "Description" shown as an orange "?" beside
   the label, with the text as tooltip (weiterbildung-navigation.js). */
/* The label stays exactly centred like the other filter labels; the icon
   sits in the right-hand track beside it. */
.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-label {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: 6px;
  margin: 0 0 7px;
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-label > label {
  grid-column: 2;
  margin: 0;
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-label > .ip-filter-help {
  grid-column: 3;
  justify-self: start;
  /* Match the optical middle of the capitals rather than the line box. */
  top: -1px;
}

.integplan-section-page .ip-filter-help {
  position: relative;
  display: inline-flex;
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-help__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: var(--ip-brand-soft);
  color: var(--ip-brand-dark);
  line-height: 0;
  cursor: help;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-help__button:hover,
.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-help.is-open .ip-filter-help__button {
  background: var(--ip-brand);
  color: #fff;
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-help__button:focus-visible {
  outline: 3px solid rgba(215, 97, 23, 0.35);
  outline-offset: 2px;
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-help__tip {
  position: absolute;
  z-index: 40;
  bottom: calc(100% + 9px);
  left: 50%;
  width: max-content;
  max-width: 240px;
  border-radius: 8px;
  padding: 8px 12px;
  background: var(--ip-ink);
  color: #fff;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%);
  transition: opacity 0.15s ease, visibility 0.15s ease;
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-help__tip::after {
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -6px;
  border: 6px solid transparent;
  border-top-color: var(--ip-ink);
  content: "";
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-help:hover .ip-filter-help__tip,
.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-help__button:focus-visible + .ip-filter-help__tip,
.integplan-section-page #views-exposed-form-courses-block-2 .ip-filter-help.is-open .ip-filter-help__tip {
  opacity: 1;
  visibility: visible;
}

/* Multi-select filters. Without JavaScript the native listbox stays usable;
   weiterbildung-navigation.js replaces it with a pill toggle and a checkbox
   panel, keeping the hidden native select as the submitted value. */
.integplan-section-page #views-exposed-form-courses-block-2 .form-select[multiple]:not(.ip-ms__native) {
  height: auto !important;
  border-radius: 12px !important;
  padding: 6px 10px !important;
  background-image: none !important;
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-ms__native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.integplan-section-page .ip-ms {
  position: relative;
}

/* Every Builder row's .bb-inner has z-index 11, so the following row would
   cover an open panel (e.g. when a filter returns no courses). */
.integplan-section-page .bb-inner:has(.ip-ms.is-open) {
  z-index: 12;
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-ms__toggle {
  box-shadow: none;
  font-weight: 400;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
  cursor: pointer;
}

.integplan-section-page .ip-ms__summary {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-ms__toggle.has-selection {
  font-weight: 700;
}

.integplan-section-page #views-exposed-form-courses-block-2 .ip-ms.is-open .ip-ms__toggle {
  border-color: var(--ip-brand-dark) !important;
}

.integplan-section-page .ip-ms__panel {
  position: absolute;
  z-index: 30;
  top: calc(100% + 6px);
  left: 0;
  min-width: 100%;
  max-height: 340px;
  overflow-y: auto;
  border: 1px solid #d6d6d6;
  border-radius: 12px;
  padding: 6px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(62, 63, 65, 0.14);
}

.integplan-section-page .ip-ms__panel[hidden] {
  display: none;
}

.integplan-section-page #views-exposed-form-courses-block-2 .form-item label.ip-ms__option {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  border-radius: 8px;
  padding: 8px 10px;
  color: var(--ip-ink);
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
}

.integplan-section-page .ip-ms__option:hover {
  background: #f6f1ec;
}

.integplan-section-page .ip-ms__option input[type="checkbox"] {
  /* Override the theme's Firefox-only appearance reset for exposed inputs. */
  appearance: auto;
  flex: none;
  width: 16px;
  height: 16px;
  margin: 0;
  padding: 0;
  accent-color: var(--ip-brand-dark);
}

.integplan-section-page #views-exposed-form-courses-block-2 > .form-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-self: end;
  justify-self: stretch;
  margin: 0 !important;
}

/* Keep the native Views submit as a no-JavaScript fallback. The scoped
   behavior adds this class only after automatic filtering is available. */
.integplan-section-page
#views-exposed-form-courses-block-2.is-auto-submit
#edit-submit-courses,
.integplan-section-page
#views-exposed-form-courses-block-2.is-auto-submit
> .form-actions > input[type="submit"] {
  display: none !important;
}

.integplan-section-page #views-exposed-form-courses-block-2 #edit-submit-courses,
.integplan-section-page #views-exposed-form-courses-block-2
> .form-actions > input[type="submit"] {
  width: auto;
  height: 44px !important;
  min-height: 44px !important;
  border: 1px solid var(--ip-brand) !important;
  border-radius: 999px !important;
  padding: 0 14px !important;
  background: var(--ip-brand) !important;
  color: #fff !important;
  font-size: 1.4rem !important;
  font-weight: 700;
  line-height: 1 !important;
  text-transform: none !important;
  letter-spacing: 0;
  box-shadow: none;
  transition: background-color 0.18s ease, border-color 0.18s ease;
}

.integplan-section-page #views-exposed-form-courses-block-2 #edit-submit-courses:hover,
.integplan-section-page #views-exposed-form-courses-block-2
> .form-actions > input[type="submit"]:hover {
  border-color: var(--ip-brand-dark) !important;
  background: var(--ip-brand-dark) !important;
}

.integplan-section-page #views-exposed-form-courses-block-2 #edit-submit-courses:focus-visible,
.integplan-section-page #views-exposed-form-courses-block-2
> .form-actions > input[type="submit"]:focus-visible,
.integplan-section-page #integplan-calendar-toggle .cal-toggle-btn:focus-visible,
.integplan-section-page .integplan-views-block .course-block a:focus-visible {
  outline: 3px solid rgba(41, 92, 99, 0.35) !important;
  outline-offset: 2px;
}

/* Keep the secondary view switch visible with the filter actions. */
.integplan-section-page #integplan-calendar-toggle {
  display: block;
  width: 100%;
  margin: 0;
}

.integplan-section-page #integplan-calendar-toggle .cal-toggle-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  height: 44px;
  min-height: 44px;
  border: 1px solid var(--ip-brand);
  border-radius: 999px;
  padding: 0 11px;
  background: #fff;
  color: var(--ip-brand-dark);
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.18s ease, border-color 0.18s ease,
    color 0.18s ease;
}

.integplan-section-page #integplan-calendar-toggle .cal-toggle-btn:hover {
  border-color: var(--ip-brand-dark);
  background: var(--ip-brand-soft);
  color: var(--ip-brand-dark);
}

.integplan-section-page #integplan-calendar-toggle .cal-toggle-icon {
  width: 14px;
  text-align: center;
}

.integplan-section-page #integplan-calendar-container {
  margin-top: 0;
}

/* Calendar event palette: one brand colour for every event. The
   Veranstaltungsart label on each event (main.js) distinguishes them. */
.integplan-section-page #integplan-calendar-container {
  --ip-calendar-bg: #fbe7d9;
  --ip-calendar-border: #a9480f;
  --ip-calendar-text: #3e3f41;
}

body.integplan-section-page.integplan-cal-active
#integplan-calendar-container .fc-event {
  border-color: var(--ip-calendar-border, #898989) !important;
  background-color: var(--ip-calendar-bg, #f3f4f5) !important;
  color: var(--ip-calendar-text, #3e3f41) !important;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.3;
  opacity: 1;
}

.integplan-section-page #integplan-calendar-container .fc-event .fc-event-main,
.integplan-section-page #integplan-calendar-container .fc-event .fc-event-title,
.integplan-section-page #integplan-calendar-container
.fc-list-event .fc-list-event-time,
.integplan-section-page #integplan-calendar-container
.fc-list-event .fc-list-event-title,
.integplan-section-page #integplan-calendar-container
.fc-list-event .fc-list-event-title a {
  color: var(--ip-calendar-text, #3e3f41) !important;
}

.integplan-section-page #integplan-calendar-container .fc-daygrid-event {
  min-height: 34px;
  align-items: flex-start;
  border-radius: 6px;
  padding: 4px 6px;
}

.integplan-section-page #integplan-calendar-container
.fc-daygrid-event .fc-event-title {
  overflow: visible;
  font-weight: 700;
  line-height: 1.3;
  white-space: normal;
  hyphens: auto;
}

/* Veranstaltungsart label above the course title (main.js eventContent). */
.integplan-section-page #integplan-calendar-container .integplan-cal-event__type {
  display: block;
  margin-bottom: 1px;
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.02em;
  opacity: 0.8;
}

.integplan-section-page #integplan-calendar-container
.fc-list-event > td {
  border-color: var(--ip-calendar-border, #898989) !important;
  background-color: var(--ip-calendar-bg, #f3f4f5) !important;
  color: var(--ip-calendar-text, #3e3f41) !important;
}

.integplan-section-page #integplan-calendar-container
.fc-list-event:hover > td {
  background-color: var(--ip-calendar-bg, #f3f4f5) !important;
  box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.1);
}

.integplan-section-page #integplan-calendar-container
.fc-list-event .fc-list-event-dot {
  border-color: var(--ip-calendar-border, #898989) !important;
}

.integplan-section-page #integplan-calendar-container .fc-event:hover {
  opacity: 1;
  filter: brightness(0.97);
}

.integplan-section-page #integplan-calendar-container .fc-event:focus-visible {
  z-index: 2;
  outline: 3px solid rgba(41, 92, 99, 0.4);
  outline-offset: 2px;
}

.integplan-section-page #integplan-calendar-container .fc-day-today {
  background: #fbe7d9 !important;
}

.integplan-section-page #integplan-calendar-container .fc-button-primary {
  min-width: 44px;
  height: 44px;
  border-color: var(--ip-brand) !important;
  border-radius: 999px !important;
  padding: 0 16px !important;
  background: var(--ip-brand) !important;
}

.integplan-section-page #integplan-calendar-container .fc-button-group {
  gap: 6px;
}

.integplan-section-page #integplan-calendar-container
.fc-button-group > .fc-button {
  margin-left: 0 !important;
  border-radius: 999px !important;
}

.integplan-section-page #integplan-calendar-container
.fc-prev-button,
.integplan-section-page #integplan-calendar-container
.fc-next-button {
  width: 44px;
  padding: 0 !important;
}

.integplan-section-page #integplan-calendar-container
.fc-today-button {
  margin-left: 8px !important;
}

.integplan-section-page #integplan-calendar-container
.fc-button-primary:hover,
.integplan-section-page #integplan-calendar-container
.fc-button-primary:focus {
  border-color: var(--ip-brand-dark) !important;
  background: var(--ip-brand-dark) !important;
  box-shadow: none !important;
}

.integplan-section-page #integplan-calendar-container
.fc-button-primary:focus-visible {
  outline: 3px solid rgba(41, 92, 99, 0.4) !important;
  outline-offset: 2px;
  box-shadow: none !important;
}

/* Keep the established card design, adding only a quieter edge and focus/hover
   separation. The existing equal-height implementation remains authoritative. */
.integplan-section-page .integplan-views-block .course-block {
  overflow: hidden;
  border: 1px solid #e4e4e4;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(62, 63, 65, 0.06);
  transition: border-color 0.18s ease, box-shadow 0.18s ease,
    transform 0.18s ease;
}

.integplan-section-page .integplan-views-block .course-block:hover {
  border-color: #d9d9d9;
  box-shadow: 0 7px 20px rgba(62, 63, 65, 0.1);
  transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  .integplan-section-page .integplan-views-block .course-block {
    transition: none;
  }

  .integplan-section-page .integplan-views-block .course-block:hover {
    transform: none;
  }
}

@media (max-width: 899px) {
  .integplan-section-page #views-exposed-form-courses-block-2 {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    padding: 0;
  }

  .integplan-section-page #views-exposed-form-courses-block-2 > .form-item,
  .integplan-section-page #views-exposed-form-courses-block-2 > .form-actions,
  .integplan-section-page #views-exposed-form-courses-block-2 #edit-submit-courses,
  .integplan-section-page #views-exposed-form-courses-block-2
  > .form-actions > input[type="submit"] {
    width: 100%;
  }

}

@media (max-width: 599px) {
  .integplan-section-page #integplan-calendar-container .fc-event {
    font-size: 1.3rem;
    line-height: 1.35;
  }

  .integplan-section-page .integplan-views-block .gva-view-grid-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px !important;
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .integplan-section-page .integplan-views-block
  .gva-view-grid-inner > .item-columns {
    width: 100% !important;
    min-width: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
}

@media (max-width: 1099px) {
  html:not(.js) body.integplan-section-page
  .gavias-blockbuilder-content .gbb-row-wrapper:first-child {
    padding-top: 84px;
  }

  .integplan-section-page .gavias-blockbuilder-content .gbb-row[id] {
    scroll-margin-top: 204px;
  }

  .integplan-section-page .ip-section-layout {
    display: block;
    width: min(calc(100% - 28px), 1600px);
    padding-top: 20px;
  }

  .integplan-section-page .ip-section-sidebar {
    display: none;
  }

  .integplan-section-page .ip-section-mobile {
    display: block;
    margin: 0 0 28px;
    border-top: 1px solid var(--ip-border);
    border-bottom: 1px solid var(--ip-border);
    background: #fff;
  }

  .integplan-section-page .ip-section-mobile > summary {
    position: relative;
    padding: 14px 44px 14px 14px;
    color: var(--ip-ink);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.4;
    cursor: pointer;
    list-style: none;
  }

  .integplan-section-page .ip-section-mobile > summary::-webkit-details-marker {
    display: none;
  }

  .integplan-section-page .ip-section-mobile > summary::after {
    position: absolute;
    top: 50%;
    right: 16px;
    color: var(--ip-brand-dark);
    font-family: FontAwesome;
    content: "\f107";
    transform: translateY(-50%);
  }

  .integplan-section-page .ip-section-mobile[open] > summary::after {
    content: "\f106";
  }

  .integplan-section-page .ip-section-mobile .ip-section-nav {
    padding: 0 14px 14px;
  }

  .integplan-section-page .ip-section-mobile .ip-section-nav__title {
    display: none;
  }

}

@media (max-width: 575px) {
  .integplan-section-page .ip-section-layout {
    width: calc(100% - 24px);
    padding-bottom: 48px;
  }

  .integplan-section-page.integplan-training-page
    .ip-section-builder
    .ip-weiterbildung-cta-row
    > .bb-inner {
    padding-bottom: 10px !important;
  }

  .integplan-section-page.integplan-training-page
    .ip-section-builder
    a.gsc-button.ip-weiterbildung-cta {
    width: 100%;
    min-width: 0;
    min-height: 50px;
    padding: 12px 20px !important;
    font-size: 1.9rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .integplan-section-page .ip-section-nav__link {
    transition: none;
  }

  .integplan-section-page.integplan-training-page
    .ip-section-builder
    a.gsc-button.ip-weiterbildung-cta {
    transition: none;
  }

  .integplan-section-page.integplan-training-page
    .ip-section-builder
    a.gsc-button.ip-weiterbildung-cta:hover,
  .integplan-section-page.integplan-training-page
    .ip-section-builder
    a.gsc-button.ip-weiterbildung-cta:focus-visible {
    transform: none;
  }
}

/* ==================================================================
   FAQ restructuring + Digitale Mittagspause (Builder 19, 2026-09-18)
   Everything is native Builder content: gsc_heading widgets carry the
   extra classes ip-faq-heading / ip-list-heading, gsc_accordion widgets
   carry ip-faq, gsc_view widgets carry ip-course-list and the rows carry
   ip-faq-row / ip-contact-row. Editors change text in the Builder UI;
   these rules only restyle the native output.
   ================================================================== */

/* Sub-headings: Arial, no uppercase eyebrow, 50 x 2 px orange rule — the
   same treatment as the Über-uns and Beratungshilfen headings. */
body.integplan-training-page .widget.gsc-heading.ip-faq-heading,
body.integplan-training-page .widget.gsc-heading.ip-list-heading {
  margin: 0 0 14px;
  padding: 0;
}

body.integplan-training-page .widget.gsc-heading.ip-faq-heading .sub-title,
body.integplan-training-page .widget.gsc-heading.ip-list-heading .sub-title {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.3;
  color: #3e3f41;
  letter-spacing: 0;
  text-transform: none;
}

body.integplan-training-page .widget.gsc-heading.ip-faq-heading .heading-line,
body.integplan-training-page .widget.gsc-heading.ip-list-heading .heading-line {
  float: none;
  width: 50px;
  height: 2px;
  margin: 10px auto 0;
  background: #d76117 !important;
}

/* Question list (Bootstrap panel-group rendered by the Accordion widget). */
body.integplan-training-page .gsc-accordion .panel-group.ip-faq {
  margin: 4px 0 0;
  border-top: 1px solid #d9d9d9;
  background: transparent;
}

body.integplan-training-page .panel-group.ip-faq .panel,
body.integplan-training-page .panel-group.ip-faq .panel + .panel {
  margin: 0;
  border: 0;
  border-bottom: 1px solid #d9d9d9;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.integplan-training-page .panel-group.ip-faq .panel-heading {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent !important;
}

body.integplan-training-page .panel-group.ip-faq .panel-title {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.45;
}

body.integplan-training-page .panel-group.ip-faq .panel-title a,
body.integplan-training-page .panel-group.ip-faq .panel-title a:link,
body.integplan-training-page .panel-group.ip-faq .panel-title a:visited {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  width: 100%;
  padding: 15px 4px 15px 0;
  background: none !important;
  color: #3e3f41;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.45;
  text-align: left;
  text-decoration: none;
  transition: color 0.18s ease;
}

body.integplan-training-page .panel-group.ip-faq .panel-title a::before {
  content: "+";
  flex: 0 0 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  margin-top: 1px;
  border-radius: 50%;
  background: #fbe7d9;
  color: #d76117;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1;
  transition: background-color 0.18s ease, color 0.18s ease;
}

body.integplan-training-page .panel-group.ip-faq .panel-title a:not(.collapsed),
body.integplan-training-page .panel-group.ip-faq .panel-title a[aria-expanded="true"],
body.integplan-training-page .panel-group.ip-faq .panel-title a:hover,
body.integplan-training-page .panel-group.ip-faq .panel-title a:focus-visible {
  color: #d76117;
}

body.integplan-training-page .panel-group.ip-faq .panel-title a:not(.collapsed)::before,
body.integplan-training-page .panel-group.ip-faq .panel-title a[aria-expanded="true"]::before {
  content: "\2013";
  background: #d76117;
  color: #fff;
}

body.integplan-training-page .panel-group.ip-faq .panel-title a:focus-visible {
  outline: 3px solid rgba(41, 92, 99, 0.72);
  outline-offset: 2px;
}

body.integplan-training-page .panel-group.ip-faq .panel-collapse {
  border: 0;
}

body.integplan-training-page .panel-group.ip-faq .panel-body {
  padding: 0 0 18px 40px;
  border: 0 !important;
  font-size: 1.45rem;
  line-height: 1.7;
  color: #58595b;
}

body.integplan-training-page .panel-group.ip-faq .panel-body p {
  margin: 0 0 12px;
}

body.integplan-training-page .panel-group.ip-faq .panel-body p:last-child {
  margin-bottom: 0;
}

/* In-text links (intro copy, FAQ answers, contact cards): same treatment as
   on Über uns — brand orange at rest, 1px underline on hover/focus. Buttons,
   course cards and the certificate/competency cards keep their own styles. */
body.integplan-training-page .ip-section-builder :is(p, li) a:not(.gsc-button):not(.ip-faq-competency):not(.ip-faq-certificate-preview),
body.integplan-training-page .ip-section-builder :is(p, li) a:not(.gsc-button):not(.ip-faq-competency):not(.ip-faq-certificate-preview):visited {
  color: #d65f16 !important;
  font-weight: 400;
  text-decoration: none !important;
}

body.integplan-training-page .ip-section-builder :is(p, li) a:not(.gsc-button):not(.ip-faq-competency):not(.ip-faq-certificate-preview):hover,
body.integplan-training-page .ip-section-builder :is(p, li) a:not(.gsc-button):not(.ip-faq-competency):not(.ip-faq-certificate-preview):focus-visible {
  color: #d65f16 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 3px;
}

body.integplan-training-page .panel-body a.ip-faq-certificate-preview {
  display: block;
  width: 100%;
  max-width: 260px;
  margin: 18px auto 4px;
  text-decoration: none;
}

body.integplan-training-page .ip-faq-certificate-preview img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid #e4e4e4;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(62, 63, 65, 0.08);
}

body.integplan-training-page .panel-body a.ip-faq-certificate-preview:hover,
body.integplan-training-page .panel-body a.ip-faq-certificate-preview:focus-visible {
  text-decoration: none;
}

/* Certificate competency cards inside the "Was muss ich tun" answer. They
   keep the former image widgets' pictures and filter links. */
body.integplan-training-page .ip-faq-competencies {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 16px 0 4px;
}

body.integplan-training-page .panel-body a.ip-faq-competency {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #d9d9d9;
  border-radius: 12px;
  background: #fff;
  color: #3e3f41;
  text-decoration: none;
  transition: box-shadow 0.18s ease, transform 0.18s ease;
}

body.integplan-training-page .panel-body a.ip-faq-competency:hover,
body.integplan-training-page .panel-body a.ip-faq-competency:focus-visible {
  color: #3e3f41;
  text-decoration: none;
  box-shadow: 0 7px 16px rgba(62, 63, 65, 0.14);
  transform: translateY(-2px);
}

body.integplan-training-page .ip-faq-competency img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

body.integplan-training-page .ip-faq-competency__title {
  display: block;
  padding: 12px 14px 4px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.35;
  color: #3e3f41;
}

body.integplan-training-page .ip-faq-competency__count {
  display: block;
  padding: 0 14px 14px;
  font-size: 1.3rem;
  line-height: 1.45;
  font-weight: 600;
  color: #d76117;
}

/* Per-section course lists (the same grid as the overview) and their
   empty state. */
body.integplan-training-page .ip-section-builder .ip-faq-row .gsc-block-view.ip-course-list {
  margin-bottom: 0;
}

/* Center incomplete rows beneath their section heading while retaining the
   View's configured card widths and responsive column count. */
body.integplan-training-page .ip-course-list .gva-view-grid-inner {
  justify-content: center;
}

/* The Gavias view template prints the View's empty text as a bare paragraph
   directly inside the js-view-dom-id wrapper (basic_html also strips the
   class), so the note is addressed structurally. */
body.integplan-training-page .ip-course-list [class*="js-view-dom-id"] > p,
body.integplan-training-page .ip-course-list .ip-course-list-empty {
  margin: 0;
  padding: 18px 20px;
  border: 1px dashed #d9d9d9;
  border-radius: 12px;
  background: #fafaf9;
  color: #58595b;
  font-size: 1.45rem;
  text-align: center;
}

/* Row rhythm: FAQ rows sit directly under their section intro; the list
   heading gets breathing room below the questions. */
body.integplan-training-page .ip-section-builder .ip-faq-row > .bb-inner {
  padding-top: 6px !important;
  padding-bottom: 30px !important;
}

body.integplan-training-page .ip-section-builder .ip-faq-row .widget.gsc-heading.ip-list-heading {
  margin-top: 26px;
}

/* Zertifikatskurs supporting content follows the full-width FAQ. */
body.integplan-training-page .ip-section-builder .ip-zk-support-row > .bb-inner {
  padding-top: 12px !important;
  padding-bottom: 28px !important;
}

body.integplan-training-page .ip-zk-support-row .row-wrapper {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

body.integplan-training-page .ip-zk-support-row .gsc-column {
  float: none;
}

body.integplan-training-page .ip-zk-contact {
  max-width: 680px;
  margin: 0 auto;
}

body.integplan-training-page .ip-section-builder .ip-contact-row > .bb-inner {
  padding-top: 0 !important;
}

@media (max-width: 991px) {
  body.integplan-training-page .ip-zk-support-row .row-wrapper {
    display: block;
  }

  body.integplan-training-page .ip-faq-competencies {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  body.integplan-training-page .panel-group.ip-faq .panel-title a {
    gap: 12px;
    font-size: 1.5rem;
  }

  body.integplan-training-page .panel-group.ip-faq .panel-body {
    padding-left: 0;
  }

  body.integplan-training-page .widget.gsc-heading.ip-faq-heading .sub-title,
  body.integplan-training-page .widget.gsc-heading.ip-list-heading .sub-title {
    font-size: 1.7rem;
  }
}

@media (max-width: 575px) {
  body.integplan-training-page .ip-faq-competencies {
    grid-template-columns: minmax(0, 1fr);
  }
}
