.gg-kalender { --gg-kalender-tanne: var(--gg-tanne, #005437); --gg-kalender-klee: var(--gg-klee, #008939); --gg-kalender-sand: var(--gg-sand, #f5f1e9); margin: 32px auto 64px; max-width: 1120px; color: var(--gg-text, #1f2a24); }
.gg-kalender__kopf { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 24px; }
.gg-kalender__kopf h2 { margin: 0 0 16px; color: var(--gg-kalender-tanne); font-size: var(--gg-h2, clamp(1.6rem, 3vw, 2.1rem)); line-height: 1.1; }
.gg-kalender__kopf h2, .gg-kalender__zeitraum, .gg-termin__details h4 { font-family: "GrueneType Neue", var(--wp--preset--font-family--gruenetypeneue, inherit); }
.gg-kalender__kopf h2::after { content: ""; display: block; width: 46px; height: 4px; margin-top: 12px; border-radius: 999px; background: var(--gg-kalender-klee); }
.gg-kalender__kopf p { margin: 0; }
.gg-kalender__augenbraue { margin: 0 0 10px !important; color: var(--gg-kalender-klee); font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gg-kalender__suche { flex: 0 1 340px; }
.gg-kalender__suche input, .gg-kalender__steuerung select { width: 100%; min-height: 48px; padding: 10px 16px; border: 1px solid #d6ddd8; border-radius: 999px; background: #fff; color: inherit; }
.gg-kalender__suche input { font: inherit; }
.gg-kalender__export { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; padding: 16px 20px; border-radius: var(--gg-radius, 18px); background: var(--gg-kalender-sand); }
.gg-kalender__export-copy { display: flex; flex: 1; align-items: center; gap: 12px; }
.gg-kalender__export-copy > span:last-child { display: grid; gap: 3px; }
.gg-kalender__export-copy strong { color: var(--gg-kalender-tanne); }
.gg-kalender__export-copy small { color: var(--gg-text, #1f2a24); }
.gg-kalender__export-link, .gg-kalender__export-link:visited, span.gg-kalender__export-link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 9px 18px; border: 2px solid var(--gg-kalender-tanne); border-radius: 999px; background: var(--gg-kalender-tanne); color: #fff !important; font: inherit; font-weight: 700; text-decoration: none !important; white-space: nowrap; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.gg-kalender__export-link:hover { transform: translateY(-2px); box-shadow: var(--gg-schatten, 0 8px 24px rgba(0,40,25,.08)); background: var(--gg-kalender-klee); }
.gg-kalender__export-link--sekundaer { background: transparent; color: var(--gg-kalender-tanne) !important; }
.gg-kalender__export-link--sekundaer:hover { background: var(--gg-kalender-tanne); color: #fff !important; }
.gg-kalender .gg-icon { flex: 0 0 38px; }
.gg-kalender .gg-icon svg { width: 20px; height: 20px; }
.gg-kalender__steuerung { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px; border-radius: var(--gg-radius, 18px); background: var(--gg-kalender-sand); }
.gg-kalender__ansichten, .gg-kalender__navigation { display: flex; align-items: center; gap: 5px; }
.gg-kalender__steuerung button { min-height: 40px; padding: 8px 15px; border: 0; border-radius: 999px; background: transparent; color: var(--gg-kalender-tanne); font: inherit; font-weight: 700; cursor: pointer; }
.gg-kalender__steuerung button:hover, .gg-kalender__steuerung button[aria-pressed="true"] { background: var(--gg-kalender-tanne); color: #fff; }
.gg-kalender__navigation button { background: #fff; }
.gg-kalender__navigation button:first-child, .gg-kalender__navigation button:last-child { width: 40px; padding: 0; font-size: 1.5rem; }
.gg-kalender__steuerung select { width: auto; min-height: 40px; padding: 7px 34px 7px 14px; }
.gg-kalender__zeitraum { margin: 28px 0 16px; color: var(--gg-kalender-tanne); font-size: 1.35rem; }
.gg-termine-liste { display: grid; gap: 14px; }
.gg-termin { display: grid; grid-template-columns: 72px 1fr; gap: 20px; padding: 22px; border: 0; border-radius: var(--gg-radius, 18px); background: #fff; box-shadow: var(--gg-schatten, 0 1px 2px rgba(0,40,25,.06), 0 8px 24px rgba(0,40,25,.08)); transition: transform .2s ease, box-shadow .2s ease; }
.gg-termin:hover { transform: translateY(-2px); box-shadow: var(--gg-schatten-hover, 0 2px 4px rgba(0,40,25,.08), 0 16px 40px rgba(0,40,25,.14)); }
.gg-termin__datum { display: flex; flex-direction: column; align-items: center; justify-content: center; align-self: start; min-height: 72px; border-radius: var(--gg-radius-klein, 10px); background: var(--gg-kalender-sand); color: var(--gg-kalender-tanne); line-height: 1.15; }
.gg-termin__datum strong { font-size: 1.7rem; }
.gg-termin__datum span { font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.gg-termin__details p { margin: 8px 0 0; }
.gg-termin__details h4 { margin: 3px 0; color: var(--gg-kalender-tanne); font-size: 1.25rem; }
.gg-termin__meta { color: #51645a; font-size: .9rem; font-weight: 700; }
.gg-termin__ort { color: var(--gg-kalender-klee); font-weight: 700; }
.gg-termin__meta, .gg-termin__ort { display: flex; align-items: center; gap: 7px; }
.gg-termin__meta svg, .gg-termin__ort svg { flex: 0 0 16px; width: 16px; height: 16px; }
.gg-termin__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(0,84,55,.12); font-size: .88rem; }
.gg-termin__actions > span { color: #51645a; font-weight: 700; }
.gg-termin__aktion-demo { padding: 4px 10px; border: 1px solid rgba(0,84,55,.25); border-radius: 999px; color: var(--gg-klee-dunkel, #006e2e); }
.gg-termin__actions a { color: var(--gg-klee-dunkel, #006e2e); font-weight: 700; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.gg-termin__actions a:hover { color: var(--gg-kalender-tanne); text-decoration-color: var(--gg-sonne, #fff17a); }
.gg-kalender__leer { padding: 24px; border-radius: var(--gg-radius, 18px); background: var(--gg-kalender-sand); }
.gg-kalender__leer p { margin: 7px 0 0; }
.gg-kalender__monat { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 6px; }
.gg-kalender__wochentag { padding: 10px 4px; color: var(--gg-kalender-tanne); font-size: .86rem; font-weight: 800; text-align: center; }
.gg-kalender__tag { display: flex; min-height: 90px; flex-direction: column; align-items: flex-start; gap: 7px; padding: 10px; border: 1px solid #e7ece8; border-radius: 12px; background: #fff; color: inherit; font: inherit; text-align: left; }
button.gg-kalender__tag { cursor: pointer; }
button.gg-kalender__tag:hover, button.gg-kalender__tag.ausgewaehlt { border-color: var(--gg-kalender-klee); background: #f3faf5; }
.gg-kalender__tag.hat-termin > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: var(--gg-kalender-tanne); color: #fff; font-weight: 800; }
.gg-kalender__tag small { color: var(--gg-kalender-klee); font-size: .72rem; font-weight: 700; }
.gg-kalender__tag--leer { border-color: transparent; background: transparent; }
.gg-kalender [data-ansicht]:focus-visible, .gg-kalender [data-zurueck]:focus-visible, .gg-kalender [data-weiter]:focus-visible, .gg-kalender [data-heute]:focus-visible, .gg-kalender [data-tag]:focus-visible { outline: 3px solid #fff17a; outline-offset: 2px; box-shadow: 0 0 0 5px var(--gg-kalender-tanne); }
@media (max-width: 720px) {
  .gg-kalender__kopf { align-items: stretch; flex-direction: column; }
  .gg-kalender__suche { flex-basis: auto; }
  .gg-kalender__export { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); align-items: stretch; gap: 10px; padding: 16px; }
  .gg-kalender__export-copy { grid-column: 1 / -1; }
  .gg-kalender__export-link { width: 100%; min-height: 46px; padding: 9px 10px; white-space: normal; text-align: center; }
  .gg-kalender__steuerung { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; }
  .gg-kalender__ansichten { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); }
  .gg-kalender__steuerung button { min-height: 44px; padding: 8px 10px; }
  .gg-kalender__navigation { justify-content: space-between; }
  .gg-kalender__navigation button:nth-child(2) { flex: 1; }
  .gg-kalender__steuerung select { width: 100%; min-height: 46px; }
  .gg-termin { grid-template-columns: 52px minmax(0,1fr); gap: 12px; padding: 14px; }
  .gg-termin__details { min-width: 0; overflow-wrap: anywhere; }
  .gg-termin__datum { min-height: 64px; }
  .gg-termin__details h4 { font-size: 1.12rem; }
  .gg-termin__actions { gap: 8px; }
  .gg-termin__actions > span:first-child { flex-basis: 100%; }
  .gg-termin__actions a, .gg-kalender__aktion-demo { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 8px 14px; border: 1px solid rgba(0,84,55,.25); border-radius: 999px; background: var(--gg-kalender-sand); text-decoration: none; }
  .gg-kalender__monat { gap: 3px; }
  .gg-kalender__wochentag { padding: 8px 2px; font-size: .72rem; }
  .gg-kalender__tag { min-height: 52px; align-items: center; justify-content: center; gap: 4px; padding: 4px 1px; border-radius: 9px; font-size: .86rem; }
  .gg-kalender__tag small { font-size: .67rem; line-height: 1; text-align: center; }
  .gg-kalender__tag-label { display: none; }
  .gg-kalender__tag.hat-termin > span { width: 24px; height: 24px; }
}

@media (max-width: 380px) {
  .gg-kalender__export { grid-template-columns: minmax(0,1fr); }
  .gg-kalender__export-copy { grid-column: auto; align-items: flex-start; }
  .gg-termin { grid-template-columns: 46px minmax(0,1fr); gap: 10px; padding: 12px; }
  .gg-termin__datum { min-height: 58px; }
  .gg-termin__datum strong { font-size: 1.45rem; }
  .gg-kalender__ansichten button { padding-inline: 6px; }
  .gg-kalender__tag { min-height: 46px; }
}
@media (prefers-reduced-motion: reduce) { .gg-termin { transition: none; } .gg-termin:hover { transform: none; } }
