/* Section hubs (/spotkania/, /meetings/) and TidyCal booking buttons.
   Used on hand-built and Divi pages alike, so every rule is scoped to its own
   classes. Colours follow DESIGN.md: forest accent, outline buttons, 3px radius. */
.hub-section {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: 40px;
  align-items: center;
  scroll-margin-top: 100px;
  border-bottom: 1px solid #dfe8e2;
}
.hub-section:last-of-type { border-bottom: 0; }
.hub-section--text { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.hub-section__media { margin: 0; }
.hub-section__media img { display: block; width: 100%; height: auto; border-radius: 3px; }
.hub-section__body h2 {
  margin: 0 0 .4em;
  color: #263d34;
  font-family: "Playfair Display", Georgia, serif;
}
.hub-section__body p { margin: 0 0 1em; font: 400 17px/1.7 Montserrat, Helvetica, Arial, sans-serif; color: #353535; }
.hub-section__body .hub-section__lead { font-style: italic; }

.booking-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 1.2em 0 0;
  padding: 0;
  list-style: none;
}
.booking-buttons li { margin: 0; padding: 0; list-style: none; }
.booking-button {
  display: inline-block;
  padding: 10px 20px;
  border: 2px solid #2e836c;
  border-radius: 3px;
  background: transparent;
  color: #2e836c;
  font: 600 15px/1.4 Montserrat, Helvetica, Arial, sans-serif;
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}
.booking-button:hover,
.booking-button:focus-visible { background: #2e836c; color: #fff; text-decoration: none; }
.booking-button--solid { background: #2e836c; color: #fff; }
.booking-button--solid:hover,
.booking-button--solid:focus-visible { background: #276f5c; border-color: #276f5c; }

/* Booking block dropped into an existing page body. */
.booking-block {
  width: min(1080px, 90%);
  margin: 0 auto;
  padding: 10px 0 40px;
}

@media (max-width: 760px) {
  .hub-section { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .booking-button { transition: none; }
}

/* "Invite me to lead a workshop" section on /warsztaty/ and /workshops/. */
.invite-section {
  width: min(760px, 90%);
  margin: 0 auto;
  padding: 60px 0 70px;
  scroll-margin-top: 100px;
}
.invite-section__eyebrow {
  margin: 0 0 .3em;
  color: #2e836c;
  font: 700 14px/1.4 Montserrat, Helvetica, Arial, sans-serif;
  letter-spacing: 1.3px;
  text-transform: uppercase;
}
.invite-section h2 {
  margin: 0 0 .8em;
  color: #263d34;
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(28px, 3.5vw, 38px);
  font-weight: 600;
  line-height: 1.25;
}
.invite-section h3 {
  margin: 1.6em 0 .5em;
  color: #263d34;
  font: 700 17px/1.5 Montserrat, Helvetica, Arial, sans-serif;
}
.invite-section p { margin: 0 0 1em; color: #353535; font: 400 17px/1.7 Montserrat, Helvetica, Arial, sans-serif; }
.invite-section a:not(.booking-button) { color: #2e836c; }
.booking-buttons--center { justify-content: center; margin-bottom: 1.2em; }

/* Hub pages: start the hero right below the fixed 80px header. */
.hub-page .divi-restored > .divi-section:first-child { padding: 80px 0 0; }

/* TidyCal inline calendar at the top of an offer subpage (e.g. /edukacja-z-moca/). */
.booking-embed {
  width: min(1080px, 90%);
  min-height: 400px;
  margin: 0 auto;
  padding: 40px 0 20px;
}
