/* Front-end and shared RSVP styles. Inherits the theme's fonts and colors where it can. */
.glo-front, .glo-rsvp { --glo-line: rgba(0,0,0,.14); --glo-soft: rgba(0,0,0,.035); --glo-accent: #1E4A36; --glo-warn: #A8650B; --glo-good: #2F7D4A; --glo-bad: #B23A32; max-width: 640px; }
.glo-front { display: grid; gap: 16px; }
.glo-form { display: grid; gap: 16px; }
.glo-rsvp { display: grid; gap: 16px; }
.glo-going { display: grid; gap: 16px; }
.glo-going[hidden] { display: none; }
.glo-field { display: grid; gap: 6px; border: 0; padding: 0; margin: 0; min-width: 0; }
.glo-field > label, .glo-field > legend { font-weight: 600; padding: 0; }
.glo-field input[type=text], .glo-field input:not([type]), .glo-field select, .glo-field textarea, .glo-counts input { width: 100%; max-width: 100%; padding: 8px 10px; border: 1px solid var(--glo-line); border-radius: 8px; box-sizing: border-box; font: inherit; }
.glo-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.glo-choices label { display: flex; align-items: center; gap: 6px; border: 1px solid var(--glo-line); border-radius: 99px; padding: 6px 14px; cursor: pointer; }
.glo-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.glo-counts label { display: grid; gap: 4px; font-size: .92em; }
.glo-meals { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px 14px; }
.glo-meals label { display: flex; align-items: center; gap: 8px; }
.glo-meals label.glo-disabled { opacity: .45; }
.glo-total { background: var(--glo-soft); border: 1px solid var(--glo-line); border-radius: 10px; padding: 12px 14px; display: grid; gap: 6px; font-variant-numeric: tabular-nums; }
.glo-row { display: flex; justify-content: space-between; gap: 12px; font-size: .92em; }
.glo-total-sum { display: flex; justify-content: space-between; border-top: 1px solid var(--glo-line); padding-top: 8px; font-size: 1.1em; }
.glo-muted { opacity: .72; font-size: .9em; }
.glo-button { display: inline-block; background: var(--glo-accent); color: #fff; border: 0; border-radius: 8px; padding: 10px 18px; font-weight: 700; cursor: pointer; text-decoration: none; justify-self: start; }
.glo-button:hover, .glo-button:focus { filter: brightness(1.12); color: #fff; }
.glo-box { border: 1px solid var(--glo-line); border-left: 4px solid var(--glo-warn); border-radius: 8px; padding: 10px 14px; }
.glo-success { border-left-color: var(--glo-good); }
.glo-error { border-left-color: var(--glo-bad); }
.glo-hero { background: var(--glo-accent); color: #fff; border-radius: 14px; padding: 16px; display: grid; gap: 2px; }
.glo-hero strong { font-size: 2.2em; line-height: 1.1; }
.glo-card-front { border: 1px solid var(--glo-line); border-radius: 10px; padding: 12px 14px; display: grid; gap: 6px; }
.glo-strong { font-weight: 700; border-top: 1px solid var(--glo-line); padding-top: 6px; }
.glo-h { margin: 0; }
@media (max-width: 480px) { .glo-counts { grid-template-columns: 1fr; } }
.glo-people { display: grid; gap: 6px; }
.glo-people label { display: flex; align-items: center; gap: 8px; }
.glo-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.glo-plain { margin: 8px 0; padding-left: 18px; }
.glo-add { margin-top: 10px; }
.glo-card-front summary { cursor: pointer; }
.glo-secondary { background: transparent; color: var(--glo-accent); border: 1px solid var(--glo-accent); }
.glo-secondary:hover, .glo-secondary:focus { color: var(--glo-accent); }
.glo-dir-search { display: flex; flex-wrap: wrap; gap: 8px; }
.glo-dir-search input, .glo-dir-search select { padding: 8px 10px; border: 1px solid var(--glo-line); border-radius: 8px; font: inherit; flex: 1 1 160px; min-width: 0; }
.glo-directory .glo-card-front { gap: 2px; }
@media (max-width: 480px) { .glo-two { grid-template-columns: 1fr; } }
