/* Events: the slot grid and meeting cards.
   Colours come from the theme's global palette where one is exposed, with a
   neutral fallback, so this never fights the site's own styling. */

.gme .gm-hub-slots {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 18px;
}

.gme .gm-hub-slot {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border: 1px solid var(--ast-border-color, #d5d8dc);
    border-radius: 4px;
    font-size: 14px;
    line-height: 1.2;
    cursor: pointer;
    background: #fff;
    transition: border-color .15s ease, background .15s ease;
}

.gme .gm-hub-slot:hover {
    border-color: var(--ast-global-color-0, #0b5cad);
}

/* A time nobody can take. Not clickable, and it says why on hover. */
.gme .gm-slot-mine,
.gme .gm-slot-theirs,
.gme .gm-slot-held,
.gme .gm-slot-closed {
    background: #f1f2f4;
    color: #6b7076;
    cursor: not-allowed;
    border-style: dashed;
}

.gme .gm-slot-mine   { border-color: #b8c4d0; }
.gme .gm-slot-theirs { border-color: #d0c4b8; }
.gme .gm-slot-held   { border-color: #d8c46a; }

.gme .gm-hub-slot input[type="radio"] { margin: 0; }

/* The selected time should be obvious without relying on the radio alone. */
.gme .gm-hub-slot:has(input:checked) {
    border-color: var(--ast-global-color-0, #0b5cad);
    box-shadow: inset 0 0 0 1px var(--ast-global-color-0, #0b5cad);
    font-weight: 600;
}

.gme blockquote {
    margin: 8px 0;
    padding: 8px 12px;
    border-left: 3px solid var(--ast-border-color, #d5d8dc);
    background: #fafbfc;
    font-style: normal;
    font-size: 14px;
}

.gme .gm-hub-pager { margin: 16px 0; }

.gme .gm-hub-sub { color: #6b7076; font-size: 13px; margin: 2px 0; }

@media (max-width: 600px) {
    .gme .gm-hub-slots { gap: 6px; }
    .gme .gm-hub-slot { padding: 10px; font-size: 13px; }
}

/* Event card: picture beside the details; every field is switched on or off per event. */
.gme .gme-ev {
    display: grid;
    grid-template-columns: 1fr;
    border: 1px solid var(--ast-border-color, #d5d8dc);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    margin: 0 0 20px;
}
.gme .gme-ev.has-img { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.gme .gme-ev-img img { display: block; width: 100%; height: 100%; min-height: 260px; object-fit: cover; }
.gme .gme-ev-body { padding: 22px 24px; }
.gme .gme-ev-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.gme .gme-ev-chips span {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 3px;
    background: #eef3f9;
    color: var(--ast-global-color-0, #0b5cad);
}
.gme .gme-ev-title { margin: 0 0 10px; font-size: 24px; line-height: 1.25; }
.gme .gme-ev-desc { font-size: 15px; line-height: 1.6; color: #3a3f45; }
.gme .gme-ev-desc p { margin: 0 0 10px; }
.gme .gme-ev-facts {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 6px 16px;
    margin: 4px 0 12px;
    font-size: 14px;
}
.gme .gme-ev-facts dt { font-weight: 600; color: #6b7076; }
.gme .gme-ev-facts dd { margin: 0; }
.gme .gme-ev-policy { border-top: 1px solid #eceef0; padding: 8px 0; font-size: 14px; }
.gme .gme-ev-policy summary { cursor: pointer; font-weight: 600; }
.gme .gme-ev-policy p { margin: 6px 0 0; }

/* Registration form: people attending */
.gme #gme-register { scroll-margin-top: 140px; }
.gme .gme-reg-form { display: grid; gap: 12px; max-width: 640px; }
.gme .gme-persons { display: grid; gap: 8px; }
.gme .gme-person { display: grid; grid-template-columns: 80px 1fr 1fr; gap: 8px; align-items: center; font-size: 14px; }
.gme .gme-person input { width: 100%; }
.gme .gme-reg-total { margin: 4px 0 0; font-weight: 600; }
.gme .gme-reg-total small { font-weight: 400; color: #6b7076; margin-left: 6px; }
.gme .gme-reg-form .gm-hub-btn { justify-self: start; }

@media (max-width: 760px) {
    .gme .gme-ev.has-img { grid-template-columns: 1fr; }
    .gme .gme-ev-img img { min-height: 180px; max-height: 260px; }
    .gme .gme-person { grid-template-columns: 1fr; }
}
/* Diary: one row per meeting */
.gme .gme-diary-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin: 18px 0 8px; }
.gme .gme-diary-head h3 { margin: 0; }
.gme .gme-diary { font-size: 13px; }
.gme .gme-diary th { font-size: 11px; }
.gme .gme-diary td { padding: 7px 8px; vertical-align: middle; }
.gme .gme-diary td.gme-nowrap { white-space: nowrap; }
.gme .gme-with-name { font-weight: 600; }
.gme .gme-with-meta { color: #6b7076; }
.gme .gme-pill { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.gme .gme-pill-ok   { background: #e3f4ea; color: #1c7a45; }
.gme .gme-pill-wait { background: #fdf1dc; color: #9a5b00; }
.gme .gme-pill-off  { background: #eef0f2; color: #6b7076; }
.gme .gm-hub-btn.gme-btn-cancel { background: #fff; border: 1px solid #d64545; color: #c43b3b; padding: 5px 10px; font-size: 12px; }
.gme .gm-hub-btn.gme-btn-cancel:hover { background: #d64545; border-color: #d64545; color: #fff; }
.gme .gm-hub-btn.gme-sm { padding: 5px 10px; font-size: 12px; }
.gme .gme-min summary { cursor: pointer; font-weight: 600; white-space: nowrap; color: var(--ast-global-color-0, #0b5cad); }
.gme .gme-min textarea { width: 100%; min-width: 220px; font-size: 13px; margin: 6px 0; }
.gme .gme-min-meta { font-size: 11px; color: #6b7076; margin: 4px 0 0; }
.gme .gme-print-only { display: none; }

/* Attendee directory: compact cards with initials */
.gme .gme-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; margin: 12px 0; }
.gme .gme-person-card { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--ast-border-color, #d5d8dc); border-radius: 8px; background: #fff; }
.gme .gme-person-card.is-me { border-color: var(--ast-global-color-0, #0b5cad); background: #f5f9fd; }
.gme .gme-initials { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--ast-global-color-0, #0b5cad); color: #fff; font-size: 13px; font-weight: 700; object-fit: cover; }
.gme .gme-pc-body { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.gme .gme-pc-co { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gme .gme-pc-line { font-size: 12px; color: #6b7076; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gme .gme-pc-btn { padding: 5px 10px; font-size: 12px; white-space: nowrap; text-decoration: none; }
.gme .gme-pc-you { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--ast-global-color-0, #0b5cad); }

/* Print / Save as PDF: only the diary goes to paper, starting at the top of page 1.
   Everything that is not the diary and does not contain it is removed from layout
   (not just made invisible, which left a blank gap and empty trailing pages). */
@page { margin: 0.5in; }
@media print {
    html, body { margin: 0 !important; padding: 0 !important; background: #fff !important; }
    body *:not(.gme-printable):not(.gme-printable *):not(:has(.gme-printable)) { display: none !important; }
    body *:has(.gme-printable) {
        display: block !important; position: static !important; margin: 0 !important; padding: 0 !important;
        border: 0 !important; box-shadow: none !important; min-height: 0 !important; height: auto !important;
        width: auto !important; max-width: none !important; transform: none !important;
        overflow: visible !important; background: none !important;
    }
    .gme-printable { position: static !important; width: 100% !important; margin: 0 !important; }
    .gme .gme-noprint, .gme .gme-min { display: none !important; }
    .gme .gme-print-only { display: block !important; }
    .gme .gm-hub-tablewrap { overflow: visible !important; }
    .gme .gme-diary td, .gme .gme-diary th { border-bottom: 1px solid #999; }
}

/* ---------- Event page and Past Events ---------- */
.gme-lp { display: flex; flex-direction: column; gap: 20px; }
.gme-lp-sec { background: #fff; border: 1px solid #e3e6ee; border-radius: 14px; padding: 22px 24px; scroll-margin-top: 120px; }
.gme-lp-sec > h3 { margin: 0 0 8px; font-size: 20px; }
.gme-lp-eyebrow { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #9a5b00; margin-bottom: 6px; }
.gme-lp-lede { color: #4a5568; margin: 8px 0 0; }
.gme-lp-cta { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 0; }
.gme-lp-cta a { text-decoration: none; }
.gme-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin-top: 6px; }
.gme-fact { background: #f7f8fb; border-radius: 10px; padding: 12px 14px; }
.gme-fact b { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: #6b7076; margin-bottom: 4px; }
.gme-countdown { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 0; }
.gme-countdown div { min-width: 72px; text-align: center; background: #0e1b3d; color: #fff; border-radius: 10px; padding: 10px 6px; }
.gme-countdown span { display: block; font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.1; }
.gme-countdown small { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; opacity: .8; }
.gme-lp-stat { margin: 12px 0 0; font-weight: 600; color: #1c7a45; }
.gme-incl { list-style: none; margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px 18px; }
.gme-incl li { position: relative; padding-left: 24px; }
.gme-incl li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 11px; height: 6px; border-left: 2px solid #1c7a45; border-bottom: 2px solid #1c7a45; transform: rotate(-45deg); }
.gme-note-early { background: #fdf1dc; color: #7a4a00; border-radius: 8px; padding: 8px 12px; margin: 4px 0 12px; font-weight: 600; }
.gme-accompany select { max-width: 120px; }
.gme-prog-day { margin: 16px 0 6px; font-size: 15px; }
.gme-prog { width: 100%; border-collapse: collapse; font-size: 14px; }
.gme-prog td { padding: 8px 10px; border-bottom: 1px solid #eef0f4; vertical-align: top; }
.gme-prog td:first-child { white-space: nowrap; width: 130px; font-variant-numeric: tabular-nums; color: #4a5568; }
.gme-prog small { color: #6b7076; }
.gme-spons { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-top: 12px; }
.gme-spon { border: 1px solid #e3e6ee; border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.gme-spon h4 { margin: 0; font-size: 16px; }
.gme-spon-price { font-weight: 800; font-size: 18px; color: #0e1b3d; font-variant-numeric: tabular-nums; }
.gme-spon ul { margin: 2px 0 6px 18px; padding: 0; font-size: 13px; color: #4a5568; }
.gme-spon.is-sold { opacity: .6; }
.gme-spon a { text-decoration: none; }
.gme-badge { display: inline-block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 2px 8px; border-radius: 999px; background: #eef0f2; color: #6b7076; vertical-align: middle; }
.gme-logos { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin-top: 16px; }
.gme-logos img { max-height: 56px; max-width: 160px; object-fit: contain; }
.gme-terms dt { font-weight: 700; margin-top: 10px; }
.gme-terms dd { margin: 2px 0 0; color: #4a5568; }
.gme-past-year { margin: 10px 0 0; font-size: 24px; border-bottom: 2px solid #e3e6ee; padding-bottom: 6px; }
.gme-past { background: #fff; border: 1px solid #e3e6ee; border-radius: 14px; padding: 20px 22px; scroll-margin-top: 120px; }
.gme-past h3 { margin: 0 0 4px; font-size: 19px; }
.gme-past-meta { color: #4a5568; margin: 0 0 6px; }
.gme-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin: 14px 0; }
.gme-gallery a { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 8px; background: #eef0f4; }
.gme-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.gme-gallery a:hover img { transform: scale(1.04); }
.gme-videos { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; margin: 14px 0; }
.gme-video { position: relative; aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; background: #000; }
.gme-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gme-video-cap { font-size: 13px; color: #4a5568; margin: 4px 0 0; }
.gme-reviews { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; margin: 8px 0; }
.gme-review { background: #f7f8fb; border-radius: 10px; padding: 12px 14px; }
.gme-stars { color: #e8a317; letter-spacing: 2px; font-size: 15px; }
.gme-review p { margin: 6px 0; }
.gme-review cite { font-style: normal; font-size: 12px; color: #6b7076; }
.gme-review-form { border-top: 1px solid #eef0f4; margin-top: 12px; padding-top: 12px; display: grid; gap: 8px; max-width: 560px; }
.gme-review-form textarea { width: 100%; }
.gme-rate { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 2px; }
.gme-rate input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gme-rate label { font-size: 26px; line-height: 1; color: #cfd4dc; cursor: pointer; }
.gme-rate input:checked ~ label, .gme-rate label:hover, .gme-rate label:hover ~ label { color: #e8a317; }
.gme-rate input:focus-visible + label { outline: 2px solid #e8a317; outline-offset: 2px; }
.gme-lightbox { position: fixed; inset: 0; background: rgba(8, 13, 31, .92); display: flex; align-items: center; justify-content: center; z-index: 99999; padding: 24px; }
.gme-lightbox img { max-width: 100%; max-height: 90vh; border-radius: 6px; }
.gme-lightbox button { position: absolute; top: 12px; right: 18px; background: none; border: 0; color: #fff; font-size: 34px; cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .gme-gallery img { transition: none; } }
@media (max-width: 600px) { .gme-lp-sec, .gme-past { padding: 16px; } .gme-countdown div { min-width: 60px; } .gme-countdown span { font-size: 20px; } }
/* upcoming-event tabs */
.gme-lp-switch { display: flex; flex-wrap: wrap; gap: 8px; }
.gme-lp-switch a { display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; border: 1px solid #e3e6ee; border-radius: 10px; background: #fff; text-decoration: none; color: #14304f; min-width: 200px; }
.gme-lp-switch a span { font-size: 12px; color: #6b7076; }
.gme-lp-switch a:hover { border-color: #e8a317; }
.gme-lp-switch a.is-on { border-color: #0e1b3d; box-shadow: inset 0 0 0 1px #0e1b3d; background: #f5f7fb; }
.gme-lp-switch a:focus-visible { outline: 2px solid #e8a317; outline-offset: 2px; }
/* equal event tabs: up to three per row, same width and height whatever the title length */
.gme .gme-lp-switch { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.gme .gme-lp-switch a { min-width: 0; min-height: 76px; justify-content: center; }
.gme .gme-lp-switch a strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.3; }
@media (max-width: 900px) { .gme .gme-lp-switch { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .gme .gme-lp-switch { grid-template-columns: 1fr; } }

/* Events page call-to-action: the two buttons sit apart instead of touching */
.elementor-element-ectaa { gap: 14px !important; align-items: center !important; justify-content: flex-end !important; flex-wrap: wrap !important; }
.elementor-element-ectaa > .elementor-widget { margin: 0 !important; }
@media (max-width: 767px) { .elementor-element-ectaa { justify-content: flex-start !important; } }
/* price and registration in one row when registration is not available (signed out, not eligible):
   early-bird note, the reason, and the button side by side instead of stacked and overlapping */
.gme .gme-lp-sec:has(> .gm-hub-tool > .gm-hub-warn:first-child) { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.gme .gme-lp-sec:has(> .gm-hub-tool > .gm-hub-warn:first-child) > .gme-lp-eyebrow { flex: 0 0 100%; margin: 0; }
.gme .gme-lp-sec:has(> .gm-hub-tool > .gm-hub-warn:first-child) > .gme-note-early { flex: 0 0 auto; margin: 0; }
.gme .gme-lp-sec > .gm-hub-tool:has(> .gm-hub-warn:first-child) { flex: 1 1 420px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.gme .gme-lp-sec > .gm-hub-tool:has(> .gm-hub-warn:first-child) > .gm-hub-note { flex: 1 1 320px; margin: 0; }
.gme .gme-lp-sec > .gm-hub-tool:has(> .gm-hub-warn:first-child) > p { flex: 0 0 auto; margin: 0; }
.gme .gme-lp-sec > .gm-hub-tool:has(> .gm-hub-warn:first-child) > p .gm-hub-btn { display: inline-block; text-decoration: none; white-space: nowrap; }
/* non-member (guest) registration */
.gme .gme-guest { flex: 0 0 100%; width: 100%; margin-top: 4px; border: 1px solid #e3e6ee; border-radius: 12px; background: #fbfcfe; }
.gme .gme-guest > summary { cursor: pointer; padding: 12px 16px; font-weight: 700; color: #14304f; }
.gme .gme-guest > p { margin: 10px 16px; }
.gme .gme-guest-form { padding: 0 16px 16px; display: grid; gap: 12px; }
.gme .gme-guest-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 14px; }
.gme .gme-guest-grid .gm-hub-field, .gme .gme-guest-people .gm-hub-field { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.gme .gme-guest-grid input, .gme .gme-guest-grid select, .gme .gme-guest-people select, .gme .gme-guest-people input { width: 100%; }
.gme .gme-guest-people { display: grid; gap: 8px; }
.gme .gme-guest-people .gme-person { display: grid; grid-template-columns: 90px 1fr 1fr; gap: 8px; align-items: center; }
.gme .gme-guest-price { margin: 0; font-size: 15px; }
.gme .gme-guest-terms { display: flex; gap: 8px; align-items: flex-start; }
.gme .gme-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.gme .gme-guest-tag { display: inline-block; margin-left: 6px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 1px 6px; border-radius: 999px; background: #fdf1dc; color: #9a5b00; vertical-align: middle; }
@media (max-width: 600px) { .gme .gme-guest-people .gme-person { grid-template-columns: 1fr; } }
/* warning box only as wide as its text */
.gme .gme-lp-sec > .gm-hub-tool:has(> .gm-hub-warn:first-child) > .gm-hub-note,
.gme .gme-lp-sec > .gm-hub-tool:has(> .gm-hub-warn:first-child) > .gm-hub-warn { flex: 0 1 auto; width: auto; max-width: 100%; }

/* guest form: geography dropdowns, and full width while open */
.gme .gme-guest [hidden] { display: none !important; }
.gme .gme-guest-grid select, .gme .gme-guest-grid .gme-geo-city-text { width: 100%; }
.gme .gme-lp-sec > .gm-hub-tool:has(> .gme-guest[open]) { flex-basis: 100%; }
