/* Shared editorial refinements for all sixteen offers, in DE and EN.
   Hero designs, course data and programme-specific structures stay intact. */
.offer-page .offer-skip-link {
  position: fixed; top: 12px; left: 16px; z-index: 2147483001;
  transform: translateY(-200%); padding: 12px 18px;
  background: #fff; color: #1b1230; border: 2px solid #6e45e2;
}
.offer-page .offer-skip-link:focus { transform: translateY(0); }
.offer-page :is(main, section[id]) { scroll-margin-top: 96px; }
.offer-page main :is(a, button, summary, input, select):focus-visible {
  outline: 2px solid #6e45e2; outline-offset: 4px;
}
.offer-page #hero :is(a, button):focus-visible { outline-color: currentColor; }
.offer-page .hero-cta-link {
  justify-content: center; margin: 0; padding: 14px 24px;
  max-width: 100%; text-align: center;
  border: 1px solid currentColor; border-radius: var(--radius-sm, 2px);
  background: transparent; letter-spacing: 0;
}
.offer-page .hero-cta-link::after { content: none; }
.offer-page .ed-section { padding-block: 80px; }
.offer-page .ed-section--compact { padding-block: 48px; }
.offer-page .ed-section-head { margin-bottom: 36px; }
.offer-page .ed-chapter { margin-top: 64px; }
.offer-page :is(.v2-main, .v2-sidebar, .brochure-card, .ed-tabs-panel) { min-width: 0; }
.offer-page :is(.tab-button, .date-register-btn, .faculty-read-more) { min-height: 44px; }
.offer-page .gallery-item { cursor: default; }
.offer-page .gallery-item:hover img { transform: none; }
.offer-page .gallery-item:hover::after { border-color: transparent; }
.offer-page .brochure-field-label {
  display: block; margin-bottom: 7px; color: #3e2f63;
  font-size: .875rem; line-height: 1.5; font-weight: 600;
}
.offer-page .brochure-required-note { margin: 12px 0 0; color: #625b70; font-size: .8rem; line-height: 1.5; }
.offer-page #brochure-form :is(input:not([type=checkbox]), select) {
  border-color: #8e7dad; min-height: 48px; font-size: 16px;
}
.offer-page #brochure-form .select-caret { top: auto; bottom: 12px; transform: none; }
.offer-page #brochure-form .form-consent { margin-block: 20px; }
.offer-page .brochure-feedback { color: #b3261e; line-height: 1.6; margin: 16px 0; }
.offer-page .brochure-feedback:empty { display: none; }
.offer-page #brochure-form button:disabled { cursor: wait; opacity: .7; }
.offer-page #brochure-form .cta-button { min-height: 48px; }
.offer-page #download-ready a { overflow-wrap: anywhere; }
.offer-page .brochure-layout {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "heading" "form";
  max-width: 760px;
  margin-inline: auto;
  gap: 32px;
  align-items: start;
  padding: 32px;
  background: var(--paper-2, #f8f6fa);
  border: 1px solid var(--rule, #ded8e5);
  border-radius: var(--radius-sm, 2px);
}
.offer-page .brochure-heading { grid-area: heading; min-width: 0; }
.offer-page .brochure-card {
  grid-area: form; padding: 0; border: 0; border-radius: 0;
  background: transparent;
}
.offer-page .brochure-heading .form-title {
  font-family: var(--font-serif); font-size: 1.65rem; font-weight: 600;
  line-height: 1.25; margin: 0 0 12px; letter-spacing: 0; color: var(--color-text);
}
.offer-page .brochure-heading .form-sub {
  max-width: 78ch; margin: 0; font-size: .95rem; line-height: 1.6; color: var(--color-muted);
}
@media (max-width: 968px) {
  .offer-page .brochure-layout { gap: 28px; }
}
@media (max-width: 480px) {
  .offer-page #hero .hero-cta-row > a {
    min-height: 64px; padding: 10px 16px; font-size: 15px; line-height: 1.4;
  }
  .offer-page .brochure-layout { padding: 24px 18px; gap: 24px; }
  .offer-page .brochure-heading .form-title { font-size: 1.4rem; }
}
/* The floating contact teaser must not cover prices, booking controls or
   the contact/brochure section that already provides the next action. */
.offer-page.offer-contact-context .sticky-contact-card { visibility: hidden !important; pointer-events: none; }

/* Navigation remains usable without hover; the closed mobile menu must
   also leave the keyboard order. JS handles Escape and focus return. */
@media (min-width: 992px) {
  .offer-page .nav-wrapper :is(.nav-item, .lang-select):focus-within:not(.offer-menu-dismissed) > .program-dropdown {
    opacity: 1; visibility: visible; transition-delay: 0s;
  }
  .offer-page .nav-wrapper .offer-menu-dismissed > .program-dropdown {
    opacity: 0; visibility: hidden; transition: none;
  }
}
@media (max-width: 991.98px) {
  .offer-page .nav-menu:not(.active) { visibility: hidden; }
}
@media (min-width: 769px) {
  .offer-page .sticky-contact-card.sticky-contact-card {
    width: 300px; grid-template-columns: 42px minmax(0, 1fr); gap: 12px; padding: 12px 14px;
  }
  .offer-page .sticky-contact-card.sticky-contact-card .sticky-contact-image-wrap { width: 42px; height: 42px; }
  .offer-page .sticky-contact-card.sticky-contact-card .sticky-contact-title { display: none; }
  .offer-page .sticky-contact-card.sticky-contact-card :is(.sticky-contact-name, .sticky-contact-cta) { margin-top: 6px; }
}
@media (min-width: 969px) and (max-width: 1100px) {
  .offer-page .v2-layout { grid-template-columns: minmax(0, 1fr) 270px; gap: 32px; }
  .offer-page .v2-sidebar { padding-left: 24px; }
}
@media (max-width: 768px) {
  .offer-page .ed-section { padding-block: 56px; }
  .offer-page .ed-section--compact { padding-block: 36px; }
  .offer-page .ed-section-head { margin-bottom: 28px; }
  .offer-page .ed-chapter { margin-top: 48px; }
  .offer-page .v2-layout { padding-top: 48px; gap: 40px; }
  .offer-page :is(h1, h2, h3, .fact-value) { hyphens: none; overflow-wrap: break-word; }
}
@media (prefers-reduced-motion: reduce) {
  .offer-page { scroll-behavior: auto; }
  .offer-page *, .offer-page *::before, .offer-page *::after {
    scroll-behavior: auto !important; animation-duration: .01ms !important;
    animation-iteration-count: 1 !important; transition-duration: .01ms !important;
  }
}
