.ge-cta--teal { --ge-cta-bg: #087c7b; --ge-cta-fg: #fff; --ge-cta-hover: #065f5f; }
.ge-cta--orange { --ge-cta-bg: #b94d1f; --ge-cta-fg: #fff; --ge-cta-hover: #913a17; }
.ge-cta--mustard { --ge-cta-bg: #e6b427; --ge-cta-fg: #20272b; --ge-cta-hover: #d5a31d; }

.ge-cta { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; margin: 1.25rem 0; }
.ge-cta__form { margin: 0; }
.ge-cta__button { display: inline-block; border: 0; border-radius: 999px; padding: .85rem 1.45rem; background: var(--ge-cta-bg); color: var(--ge-cta-fg); font-weight: 700; line-height: 1.25; cursor: pointer; text-align: center; text-decoration: none; box-shadow: 0 4px 12px rgba(0,0,0,.12); }
.ge-cta__button:hover, .ge-cta__button:focus-visible { background: var(--ge-cta-hover); color: var(--ge-cta-fg); }
.ge-cta__button:focus-visible, .ge-cta__secondary:focus-visible, .ge-cta-admin button:focus-visible, .ge-cta-admin select:focus-visible { outline: 3px solid #142f42; outline-offset: 3px; }
.ge-cta__copy { display: flex; flex-direction: column; gap: .15rem; }
.ge-cta__copy strong { font-size: 1.05rem; line-height: 1.3; }
.ge-cta__copy span, .ge-cta__hint { color: #4a555a; font-size: .9rem; }
.ge-cta__review-link { font-weight: 700; }
.ge-cta--large-primary { flex-direction: column; align-items: flex-start; }
.ge-cta--large-primary .ge-cta__button { font-size: 1.05rem; padding: 1rem 1.8rem; }
.ge-cta--review-led { padding: 1rem 1.2rem; border: 1px solid #dce5e3; border-radius: 1rem; background: #f5f8f7; }
.ge-cta--review-led .ge-cta__form { margin-left: auto; }
.ge-cta--persistent-bar { position: fixed; z-index: 1010; bottom: 0; left: 0; right: 0; margin: 0; padding: .75rem max(1rem, calc((100vw - 1200px)/2)); background: #fff; border-top: 1px solid #dce5e3; box-shadow: 0 -5px 20px rgba(0,0,0,.1); }
.ge-cta--persistent-bar .ge-cta__form { margin-left: auto; }
body:has(.ge-cta--persistent-bar) { padding-bottom: 90px; }
.ge-cta--date-check { padding: 1rem 1.2rem; border: 1px solid #dce5e3; border-radius: 1rem; }
.ge-cta--date-check .ge-cta__form { margin-left: auto; }
.ge-cta__secondary { font-weight: 600; }
.ge-cta--full-width-banner { width: 100%; justify-content: space-between; padding: 1.25rem 1.5rem; border-radius: 1rem; background: #eef4f1; }
.ge-cta--full-width-banner .ge-cta__form { margin-left: auto; }
.ge-cta--event-details-panel { display: block; width: 100%; padding: 1.3rem; border: 1px solid #dce5e3; border-radius: 1rem; background: #f5f8f7; }
.ge-cta--event-details-panel .ge-cta__form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin-top: 1rem; }
.ge-cta--event-details-panel label { display: flex; flex-direction: column; gap: .3rem; font-weight: 600; font-size: .9rem; }
.ge-cta--event-details-panel input, .ge-cta--event-details-panel select { width: 100%; min-width: 0; border: 1px solid #aab8b7; border-radius: .4rem; padding: .7rem; background: #fff; }
.ge-cta--event-details-panel .ge-cta__button { grid-column: 1 / -1; justify-self: start; }
.ge-cta-admin { display: flex; align-items: center; flex-wrap: wrap; gap: .8rem 1.5rem; padding: 1rem max(1rem, calc((100vw - 1200px)/2)); background: #eef3f5; border-block: 1px solid #d5e0e2; }
.ge-cta-admin__sample, .ge-cta-admin__details, .ge-cta-admin__actions { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; }
.ge-cta-admin__details { flex-direction: column; align-items: flex-start; gap: .1rem; font-size: .9rem; }
.ge-cta-admin__actions { margin-left: auto; }
.ge-cta-admin__sample .ge-cta__button { cursor: default; opacity: 1; }
.ge-cta-admin__tag { font-weight: 700; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; }
.ge-cta-admin select, .ge-cta-admin__reset { border: 1px solid #9baeb1; border-radius: .4rem; padding: .45rem .65rem; background: #fff; color: #1c3037; }
.ge-cta-admin__reset { cursor: pointer; }
@media (max-width: 640px) {
  .ge-cta--review-led .ge-cta__form, .ge-cta--date-check .ge-cta__form, .ge-cta--full-width-banner .ge-cta__form { margin-left: 0; width: 100%; }
  .ge-cta--review-led .ge-cta__button, .ge-cta--date-check .ge-cta__button, .ge-cta--full-width-banner .ge-cta__button { width: 100%; }
  .ge-cta--persistent-bar { padding: .6rem 1rem; }
  .ge-cta--persistent-bar .ge-cta__copy span { display: none; }
  .ge-cta--persistent-bar .ge-cta__button { padding: .7rem 1rem; }
  body:has(.ge-cta--persistent-bar) { padding-bottom: 78px; }
  .ge-cta-admin__actions { margin-left: 0; }
  .ge-cta--event-details-panel .ge-cta__form { grid-template-columns: 1fr; }
}
