/* Busreisen Core – Reiseseiten, Karten, Formulare. Farben aus den Theme-Presets. */
.ek-reise-liste {
  --ek-gap: var(--wp--preset--spacing--40, 1.5rem);
  list-style: none;
  margin: var(--wp--preset--spacing--50, 2rem) 0 0;
  padding: 0;
  display: grid;
  gap: var(--wp--preset--spacing--50, 2rem) var(--ek-gap);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
}
.ek-reise-liste.is-empty { display: block; color: var(--wp--preset--color--muted); }

.ek-card__link { display: flex; flex-direction: column; gap: 0.4rem; color: inherit; text-decoration: none; height: 100%; }
.ek-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 6px; background: var(--wp--preset--color--surface); margin-bottom: 0.5rem; }
.ek-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.ek-card__link:hover .ek-card__media img, .ek-card__link:focus-visible .ek-card__media img { transform: scale(1.04); }
.ek-card__placeholder { display: block; width: 100%; height: 100%; }
.ek-card__media .ek-badge { position: absolute; left: 0.75rem; top: 0.75rem; }
.ek-card__date {
  margin: 0; font-size: var(--wp--preset--font-size--small); font-weight: 500;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--muted);
}
.ek-card__title { margin: 0; font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--heading); }
.ek-card__link:hover .ek-card__title { text-decoration: underline; text-underline-offset: 0.2em; }
.ek-card__teaser { margin: 0; font-size: var(--wp--preset--font-size--small); }
.ek-card__price { margin: auto 0 0; padding-top: 0.25rem; font-weight: 600; color: var(--wp--preset--color--heading); }
.ek-card__price small, .ek-preis__amount small { font-weight: 400; color: var(--wp--preset--color--muted); }

.ek-badge {
  display: inline-block; padding: 0.3rem 0.6rem; border-radius: 999px;
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
  background: var(--wp--preset--color--accent); color: var(--wp--preset--color--on-accent);
}
.ek-badge--ausgebucht, .ek-badge--vorbei { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); }

/* Reiseseite */
.ek-reise__head { margin-bottom: var(--wp--preset--spacing--50, 2rem); }
.ek-reise__head .is-style-eyebrow a { color: inherit; text-decoration: none; }
.ek-reise__code { margin-left: 0.4em; }
.ek-reise__title { margin: 0.4rem 0; }
.ek-reise__dates { margin: 0 0 0.75rem; font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--heading); }
.ek-reise__hero { margin: 0 0 var(--wp--preset--spacing--60, 3rem); }
.ek-reise__hero img { width: 100%; max-height: 70vh; object-fit: cover; border-radius: 6px; display: block; }
.ek-reise__body { display: grid; gap: var(--wp--preset--spacing--60, 3rem); }
@media (min-width: 900px) {
  .ek-reise__body { grid-template-columns: minmax(0, 1fr) 22rem; align-items: start; }
  .ek-reise__side { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 6rem); }
}
.ek-section { margin-top: var(--wp--preset--spacing--60, 3rem); }
.ek-reise__main > :first-child { margin-top: 0; }
.ek-programm { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--wp--preset--color--border); }
.ek-programm li { position: relative; padding: 0 0 1.5rem 1.5rem; }
.ek-programm li::before {
  content: ""; position: absolute; left: -5px; top: 0.45em; width: 9px; height: 9px; border-radius: 50%;
  background: var(--wp--preset--color--accent);
}
.ek-programm h3 { margin: 0 0 0.4rem; font-size: var(--wp--preset--font-size--medium); }
.ek-programm p { margin: 0 0 0.5rem; }
.ek-leistungen { list-style: none; padding: 0; columns: 2 16rem; column-gap: 2rem; }
.ek-leistungen li { break-inside: avoid; padding: 0.35rem 0 0.35rem 1.6rem; position: relative; }
.ek-leistungen li::before { content: "✓"; position: absolute; left: 0; color: var(--wp--preset--color--accent); font-weight: 700; }
.ek-galerie { display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); }
.ek-galerie img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; display: block; }

.ek-preisbox { padding: var(--wp--preset--spacing--40, 1.5rem); border-radius: 6px; background: var(--wp--preset--color--surface); }
.ek-preisbox h2 { margin-top: 0; font-size: var(--wp--preset--font-size--large); }
.ek-preisbox h3 { font-size: var(--wp--preset--font-size--medium); margin: 1.25rem 0 0.5rem; }
.ek-preis { padding: 0.75rem 0; border-bottom: 1px solid var(--wp--preset--color--border); }
.ek-preis p { margin: 0; }
.ek-preis__date { font-weight: 500; }
.ek-preis__note { display: block; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.ek-preis__amount { font-size: var(--wp--preset--font-size--x-large); color: var(--wp--preset--color--heading); font-weight: 600; }
.ek-preis__extra { font-size: var(--wp--preset--font-size--small); }
.ek-preis .ek-badge { margin-top: 0.4rem; }
.ek-zusatz { list-style: none; padding: 0; margin: 0; font-size: var(--wp--preset--font-size--small); }
.ek-zusatz li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.25rem 0; }
.ek-preisbox .wp-block-button { margin-top: 1.25rem; }
.ek-preisbox .wp-block-button__link { width: 100%; text-align: center; }

/* Formulare */
.ek-form-wrap { scroll-margin-top: 7rem; }
.ek-form { display: grid; gap: 1rem 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); max-width: 52rem; }
.ek-field { display: flex; flex-direction: column; gap: 0.35rem; }
.ek-field.is-wide, .ek-form-hint, .ek-form > .wp-block-button { grid-column: 1 / -1; }
.ek-field label { font-size: var(--wp--preset--font-size--small); font-weight: 500; }
.ek-form :is(input:not([type="checkbox"]), select, textarea) {
  width: 100%; box-sizing: border-box; padding: 0.7rem 0.8rem; font: inherit;
  color: var(--wp--preset--color--heading); background: var(--wp--preset--color--base);
  border: 1px solid var(--wp--preset--color--border); border-radius: 6px;
}
.ek-form :is(input, select, textarea):focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 1px; }
.ek-form .ek-check { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 400; }
.ek-form .ek-check input { margin-top: 0.25rem; accent-color: var(--wp--preset--color--accent); width: 1.1rem; height: 1.1rem; flex: none; }
.ek-form .ek-check a { color: inherit; }
.ek-options { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.ek-options legend { width: 100%; margin-bottom: 0.4rem; font-size: var(--wp--preset--font-size--small); font-weight: 500; }
.ek-form .ek-options .ek-check input { margin-top: 0.2rem; }
.ek-req { color: var(--wp--preset--color--accent); }
.ek-form-hint { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.ek-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ek-form-notice { padding: 1rem 1.25rem; margin-bottom: 1.5rem; border-radius: 6px; border-left: 4px solid; }
.ek-form-notice.is-success { border-color: #3c9a5f; background: rgba(60, 154, 95, 0.12); }
.ek-form-notice.is-error { border-color: var(--wp--preset--color--accent); background: rgba(227, 10, 11, 0.1); }
.ek-form-notice ul { margin: 0.5rem 0 0; }
.ek-form-closed { padding: 1rem 1.25rem; border-radius: 6px; background: var(--wp--preset--color--surface); }
.ek-form [hidden] { display: none !important; }
.ek-options__title { width: 100%; margin: 0 0 0.2rem; font-size: var(--wp--preset--font-size--small); font-weight: 500; }
.ek-check small { color: var(--wp--preset--color--muted); }

/* Teilnehmer je Person */
.ek-teilnehmer { display: grid; gap: 1rem; }
.ek-person {
  margin: 0; padding: 1rem 1.25rem 1.25rem; display: grid; gap: 0.75rem 1rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
  border: 1px solid var(--wp--preset--color--border); border-radius: 6px;
}
.ek-person legend { padding: 0 0.4rem; font-weight: 600; }
.ek-person > .ek-field, .ek-person .ek-options { grid-column: 1 / -1; }
.ek-person__adresse { grid-column: 1 / -1; display: grid; gap: 0.75rem 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); }

/* Anfrage als Popup */
.ek-modal {
  width: min(48rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; overflow: auto;
  border: 0; border-radius: 10px; color: inherit; background: var(--wp--preset--color--base);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35);
}
.ek-modal::backdrop { background: rgba(0, 0, 0, 0.55); }
.ek-modal__inner { padding: clamp(1.25rem, 4vw, 2.5rem); }
.ek-modal .ek-reise__form { margin: 0; padding: 0; }
.ek-modal .ek-reise__form h2 { margin-top: 0; padding-right: 2.5rem; font-size: var(--wp--preset--font-size--x-large); }
.ek-modal__close {
  position: sticky; top: 0; float: right; z-index: 1; width: 2.5rem; height: 2.5rem; margin: -0.5rem -0.5rem 0 0;
  font-size: 1.75rem; line-height: 1; cursor: pointer; border: 0; border-radius: 50%;
  color: var(--wp--preset--color--heading); background: var(--wp--preset--color--surface);
}
.ek-modal__close:hover { background: var(--wp--preset--color--border); }
.ek-modal.is-done .ek-form { display: none; }
html:has(.ek-modal[open]) { overflow: hidden; }

.ek-editor-placeholder { padding: 2rem; border: 1px dashed currentColor; border-radius: 6px; }

/* Baustellen-Modus */
.ek-baustelle {
  max-width: 44rem; margin: var(--wp--preset--spacing--50, 2rem) 0; padding: var(--wp--preset--spacing--50, 2.5rem);
  border-radius: 6px; background: var(--wp--preset--color--surface); border-left: 4px solid var(--wp--preset--color--accent);
}
.ek-baustelle.alignwide { max-width: none; }
.ek-baustelle__icon { font-size: 2.5rem; line-height: 1; margin: 0 0 0.75rem; }
.ek-baustelle__titel { margin: 0 0 0.75rem; font-size: var(--wp--preset--font-size--x-large); }
.ek-baustelle p { max-width: 40rem; }
.ek-baustelle .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }
.ek-baustelle-vorschau {
  margin: 0 0 1.5rem; padding: 0.6rem 1rem; border-radius: 6px; font-size: var(--wp--preset--font-size--small);
  background: rgba(227, 10, 11, 0.12); border: 1px dashed var(--wp--preset--color--accent);
}
.ek-baustelle-vorschau a { color: inherit; }
.ek-baustelle .is-style-outline .wp-element-button {
  background: transparent; color: var(--wp--preset--color--heading);
  border: 1px solid currentColor;
}
.ek-baustelle .is-style-outline .wp-element-button:hover { background: var(--wp--preset--color--heading); color: var(--wp--preset--color--base); }
