/* Public rsvpBOOK structured content widgets v1. Scoped to .rsvpbook-widget. */
.rsvpbook-widget,
.rsvpbook-widget * {
    box-sizing: border-box;
}

.rsvpbook-widget {
    --rbw-accent: #1769aa;
    --rbw-surface: #ffffff;
    --rbw-soft: #f6f8fb;
    --rbw-text: #20242a;
    --rbw-muted: #667085;
    width: 100%;
    max-width: 100%;
    margin: 16px auto;
    color: var(--rbw-text);
    font-family: inherit;
    line-height: 1.45;
    text-align: left;
}

.rsvpbook-widget-title {
    margin: 0 0 14px !important;
    padding: 0 !important;
    color: inherit !important;
    font: inherit !important;
    font-size: 1.45em !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

.rsvpbook-widget-empty {
    padding: 14px;
    border: 1px dashed #cfd6df;
    border-radius: 8px;
    color: var(--rbw-muted);
    background: var(--rbw-soft);
    text-align: center;
}

/* Event overview */
.rsvpbook-event-overview { margin-top: 22px; margin-bottom: 24px; }
.rsvpbook-event-overview-layout {
    display: flow-root;
}
.rsvpbook-event-overview-description {
    min-width: 0;
    color: var(--rbw-text);
    font-size: 1rem;
    line-height: 1.65;
}
.rsvpbook-event-overview-description > :first-child { margin-top: 0; }
.rsvpbook-event-overview-description > :last-child { margin-bottom: 0; }
.rsvpbook-event-overview-details {
    float: right;
    width: min(320px, 42%);
    display: grid;
    gap: 12px;
    margin: 0 0 20px 28px;
    padding: 20px;
    border: 1px solid #dde3ea;
    border-radius: 14px;
    background: var(--rbw-surface);
    box-shadow: 0 6px 18px rgba(16, 24, 40, .06);
}
.rsvpbook-event-overview-detail { display: grid; gap: 2px; }
.rsvpbook-event-overview-detail small {
    color: var(--rbw-muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.rsvpbook-event-overview-detail strong { color: var(--rbw-text); font-size: .98rem; line-height: 1.35; }
.rsvpbook-event-overview-register {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    margin-top: 4px;
    padding: 10px 18px;
    border-radius: 10px;
    background: var(--rbw-accent);
    color: #fff !important;
    font-weight: 700;
    text-decoration: none !important;
}
.rsvpbook-event-overview-register:hover,
.rsvpbook-event-overview-register:focus { filter: brightness(.94); }
@media (max-width: 720px) {
    .rsvpbook-event-overview-layout { display: flex; flex-direction: column; gap: 18px; }
    .rsvpbook-event-overview-description { order: 1; }
    .rsvpbook-event-overview-details { order: 2; float: none; width: 100%; margin: 0; }
}

/* Countdown */
.rsvpbook-countdown {
    text-align: center;
}

.rsvpbook-countdown .rsvpbook-widget-title { text-align: center; }

.rsvpbook-countdown-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(70px, 1fr));
    gap: 10px;
    width: min(620px, 100%);
    margin: 0 auto;
}

.rsvpbook-countdown-unit {
    min-width: 0;
    padding: 14px 8px;
    border: 1px solid #d9dee7;
    border-radius: 10px;
    background: var(--rbw-surface);
    box-shadow: 0 2px 8px rgba(16, 24, 40, .06);
}

.rsvpbook-countdown-number {
    display: block;
    color: var(--rbw-accent);
    font-size: clamp(24px, 5vw, 42px);
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.rsvpbook-countdown-label {
    display: block;
    margin-top: 6px;
    color: var(--rbw-muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.rsvpbook-countdown--compact .rsvpbook-countdown-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
}

.rsvpbook-countdown--compact .rsvpbook-countdown-unit {
    min-width: 82px;
    padding: 8px 10px;
    box-shadow: none;
}

.rsvpbook-countdown--compact .rsvpbook-countdown-number { font-size: 24px; }

.rsvpbook-countdown-expired {
    padding: 13px 16px;
    border-radius: 8px;
    background: var(--rbw-soft);
    color: var(--rbw-text);
    text-align: center;
}

/* Cards / lists */
.rsvpbook-widget-grid {
    display: grid;
    grid-template-columns: repeat(var(--rbw-columns, 3), minmax(0, 1fr));
    gap: 14px;
}

.rsvpbook-widget-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.rsvpbook-widget-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dde3ea;
    border-radius: 10px;
    background: var(--rbw-surface);
    box-shadow: 0 2px 7px rgba(16, 24, 40, .05);
}

.rsvpbook-widget-card-body {
    padding: 14px;
}

.rsvpbook-widget-card-title {
    margin: 0 0 6px !important;
    padding: 0 !important;
    color: var(--rbw-text) !important;
    font: inherit !important;
    font-size: 1.05em !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}

.rsvpbook-widget-meta {
    margin: 0 0 8px;
    color: var(--rbw-muted);
    font-size: .88em;
    line-height: 1.4;
}

.rsvpbook-widget-description {
    color: var(--rbw-text);
    font-size: .94em;
    line-height: 1.5;
}

.rsvpbook-session-time {
    color: var(--rbw-accent);
    font-weight: 600;
}

.rsvpbook-session-speakers {
    margin-top: 8px;
    color: var(--rbw-muted);
    font-size: .88em;
}

/* Speakers */
.rsvpbook-speaker-photo-wrap {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #eef1f5;
}

.rsvpbook-speaker-photo {
    display: block;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    object-fit: cover;
    margin: 0 !important;
    border: 0 !important;
}

.rsvpbook-speaker-links {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 12px;
}

.rsvpbook-speaker-links a {
    display: inline-block;
    padding: 5px 9px;
    border: 1px solid var(--rbw-border);
    border-radius: 999px;
    color: var(--rbw-accent) !important;
    background: #fff;
    font-size: .82em;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none !important;
}

.rsvpbook-speaker-links a:hover,
.rsvpbook-speaker-links a:focus {
    border-color: var(--rbw-accent);
    text-decoration: underline !important;
}

/* Vendors / sponsors */
.rsvpbook-company-card {
    display: flex;
    min-height: 125px;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.rsvpbook-company-logo-wrap {
    display: flex;
    min-height: 78px;
    align-items: center;
    justify-content: center;
    padding: 12px 12px 4px;
}

.rsvpbook-company-logo {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 84px !important;
    margin: 0 auto !important;
    border: 0 !important;
    object-fit: contain;
}

.rsvpbook-company-link {
    color: inherit !important;
    text-decoration: none !important;
}

.rsvpbook-company-link:hover .rsvpbook-widget-card-title,
.rsvpbook-company-link:focus .rsvpbook-widget-card-title {
    color: var(--rbw-accent) !important;
    text-decoration: underline;
}

/* Utility blocks */
.rsvpbook-heading-widget {
    margin-top: 18px;
    margin-bottom: 10px;
}

.rsvpbook-heading-widget .rsvpbook-heading-text {
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    font-family: inherit !important;
    line-height: 1.2 !important;
}

.rsvpbook-button-widget { text-align: var(--rbw-align, center); }

.rsvpbook-button-widget a {
    display: inline-block;
    padding: 11px 20px;
    border: 1px solid var(--rbw-accent);
    border-radius: 7px;
    background: var(--rbw-accent);
    color: #fff !important;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    transition: filter .12s ease, transform .12s ease;
}

.rsvpbook-button-widget a:hover,
.rsvpbook-button-widget a:focus {
    filter: brightness(.92);
    transform: translateY(-1px);
}

.rsvpbook-spacer-widget {
    height: var(--rbw-space, 32px);
    margin: 0;
}

@media (max-width: 820px) {
    .rsvpbook-widget-grid { grid-template-columns: repeat(min(var(--rbw-columns, 3), 2), minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    .rsvpbook-countdown-grid { grid-template-columns: repeat(2, minmax(70px, 1fr)); }
    .rsvpbook-widget-grid { grid-template-columns: 1fr; }
}


/* Table / Agenda */
.rsvpbook-table-widget { margin: 14px 0; max-width: 100%; }
.rsvpbook-table-scroll { width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rsvpbook-table, .rsvpbook-table * { box-sizing: border-box; }
.rsvpbook-table { width: 100%; border-collapse: collapse; border-spacing: 0; table-layout: fixed; color: var(--rbw-text); background: var(--rbw-surface); font: inherit; }
.rsvpbook-table .rsvpbook-table-first-col { width: var(--rbw-table-first, 25%); }
.rsvpbook-table th, .rsvpbook-table td { border: 1px solid var(--rbw-table-border, #222); vertical-align: middle; text-align: left; line-height: 1.3; overflow-wrap: anywhere; }
.rsvpbook-table th, .rsvpbook-table td { min-width: 0; max-width: 100%; }
.rsvpbook-table-widget--compact .rsvpbook-table th, .rsvpbook-table-widget--compact .rsvpbook-table td { padding: 6px 8px; }
.rsvpbook-table-widget--comfortable .rsvpbook-table th, .rsvpbook-table-widget--comfortable .rsvpbook-table td { padding: 10px 12px; }
.rsvpbook-table-row--title > th { background: var(--rbw-table-accent, #334155); color: #fff !important; font-weight: 800; text-align: var(--rbw-table-title-align, center); }
.rsvpbook-table-row--section > th { background: var(--rbw-table-section, #64748b); color: #fff !important; font-weight: 800; text-align: var(--rbw-table-section-align, center); }
.rsvpbook-table-row--header > th { background: var(--rbw-table-accent, #334155); color: #fff !important; font-weight: 700; text-align: var(--rbw-table-column-header-align, left); }
.rsvpbook-table-widget--agenda .rsvpbook-table-row--data > td:first-child { font-weight: 700; white-space: normal !important; overflow-wrap: anywhere; word-break: normal; }
.rsvpbook-table-widget--bold-data .rsvpbook-table-row--data > td { font-weight: 700; }
.rsvpbook-table-widget--clean .rsvpbook-table-row--section > th { color: var(--rbw-table-accent, #334155) !important; background: #f3f7fb; }
.rsvpbook-table-widget--clean .rsvpbook-table th, .rsvpbook-table-widget--clean .rsvpbook-table td { border-color: #d6dde6; }
.rsvpbook-table-row--alternate > td { background: var(--rbw-table-alternate, #f8fafc); }
.rsvpbook-table-widget--cols-3 .rsvpbook-table, .rsvpbook-table-widget--cols-4 .rsvpbook-table { min-width: 620px; }
@media (max-width: 560px) {
    .rsvpbook-table-widget--cols-2 .rsvpbook-table .rsvpbook-table-first-col { width: 36%; }
    .rsvpbook-table-widget--agenda .rsvpbook-table-row--data > td:first-child { white-space: normal; }
    .rsvpbook-table-widget--compact .rsvpbook-table th, .rsvpbook-table-widget--compact .rsvpbook-table td { padding: 6px; font-size: .92em; }
}

/* v8.7.0 — Callout */
.rsvpbook-callout {
    display:flex;
    align-items:flex-start;
    gap:12px;
    padding:15px 16px;
    border:1px solid #cbd5e1;
    border-left-width:5px;
    border-radius:9px;
    background:#f8fafc;
}
.rsvpbook-callout-icon {
    display:inline-flex;
    flex:0 0 28px;
    width:28px;
    height:28px;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#64748b;
    color:#fff;
    font-weight:800;
    line-height:1;
}
.rsvpbook-callout-content { min-width:0; }
.rsvpbook-callout-heading { margin:0 0 4px; color:#1f2937; font-size:1.02em; font-weight:700; line-height:1.3; }
.rsvpbook-callout-text { color:#344054; line-height:1.5; }
.rsvpbook-callout--info { border-left-color:#2563eb; background:#eff6ff; }
.rsvpbook-callout--info .rsvpbook-callout-icon { background:#2563eb; }
.rsvpbook-callout--success { border-left-color:#15803d; background:#f0fdf4; }
.rsvpbook-callout--success .rsvpbook-callout-icon { background:#15803d; }
.rsvpbook-callout--warning { border-left-color:#b45309; background:#fffbeb; }
.rsvpbook-callout--warning .rsvpbook-callout-icon { background:#b45309; }
.rsvpbook-callout--important { border-left-color:#b42318; background:#fff1f0; }
.rsvpbook-callout--important .rsvpbook-callout-icon { background:#b42318; }

/* v8.7.0 — Gallery */
.rsvpbook-gallery-grid {
    display:grid;
    grid-template-columns:repeat(var(--rbw-gallery-columns,3),minmax(0,1fr));
    gap:14px;
}
.rsvpbook-gallery--tight .rsvpbook-gallery-grid { gap:6px; }
.rsvpbook-gallery--relaxed .rsvpbook-gallery-grid { gap:22px; }
.rsvpbook-gallery-item { min-width:0; margin:0; }
.rsvpbook-gallery-link { display:block; color:inherit; text-decoration:none; }
.rsvpbook-gallery-image {
    display:block;
    width:100% !important;
    max-width:none !important;
    height:auto;
    margin:0 !important;
    border:0 !important;
    border-radius:7px;
    object-fit:cover;
    background:#eef1f5;
}
.rsvpbook-gallery--square .rsvpbook-gallery-image { aspect-ratio:1/1; height:auto !important; }
.rsvpbook-gallery--landscape .rsvpbook-gallery-image { aspect-ratio:4/3; height:auto !important; }
.rsvpbook-gallery--square .rsvpbook-gallery-image,
.rsvpbook-gallery--landscape .rsvpbook-gallery-image { width:100% !important; object-fit:cover; }
.rsvpbook-gallery-caption { margin-top:6px; color:var(--rbw-muted); font-size:.82em; line-height:1.35; word-break:break-word; }

/* v8.7.0 — Video */
.rsvpbook-video-widget { width:min(100%,var(--rbw-video-max,100%)); margin-left:auto; margin-right:auto; }
.rsvpbook-video-frame { position:relative; width:100%; overflow:hidden; border-radius:9px; background:#000; }
.rsvpbook-video-frame--16x9 { aspect-ratio:16/9; }
.rsvpbook-video-frame--4x3 { aspect-ratio:4/3; }
.rsvpbook-video-frame--1x1 { aspect-ratio:1/1; }
.rsvpbook-video-frame iframe,
.rsvpbook-video-frame video {
    position:absolute;
    inset:0;
    display:block;
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    border:0 !important;
    object-fit:contain;
}
.rsvpbook-video-caption { margin-top:8px; color:var(--rbw-muted); font-size:.9em; line-height:1.45; }

@media (max-width: 820px) {
    .rsvpbook-gallery-grid { grid-template-columns:repeat(min(var(--rbw-gallery-columns,3),3),minmax(0,1fr)); }
}
@media (max-width: 560px) {
    .rsvpbook-gallery-grid { grid-template-columns:repeat(min(var(--rbw-gallery-columns,3),2),minmax(0,1fr)); }
}

/* Registration Options / pricing cards */
.rsvpbook-regtype-widget { color: var(--rbw-text); }
.rsvpbook-regtype-widget .rsvpbook-widget-heading { text-align:center; margin:0 0 24px; }
.rsvpbook-regtype-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.rsvpbook-regtype-grid--1 { grid-template-columns:minmax(0,620px); justify-content:center; }
.rsvpbook-regtype-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.rsvpbook-regtype-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.rsvpbook-regtype-card { display:flex; flex-direction:column; min-width:0; padding:26px; border:1px solid rgba(15,23,42,.12); border-radius:16px; background:var(--rbw-surface); box-shadow:0 8px 24px rgba(15,23,42,.07); }
.rsvpbook-regtype-card h3 { margin:0 0 16px; font-size:1.25rem; line-height:1.25; }
.rsvpbook-regtype-price { margin-bottom:8px; }
.rsvpbook-regtype-price span { display:block; color:var(--rbw-accent); font-size:1.3rem; line-height:1.05; font-weight:750; }
.rsvpbook-regtype-price small { display:block; margin-top:5px; color:#64748b; font-size:.78rem; font-weight:650; text-transform:uppercase; letter-spacing:.045em; }
.rsvpbook-regtype-next { margin:0 0 14px; color:#64748b; font-size:.88rem; }
.rsvpbook-regtype-description { flex:1; margin:10px 0 22px; color:#475569; line-height:1.55; }
.rsvpbook-regtype-unavailable { margin:0 0 14px; color:#64748b; font-size:.9rem; line-height:1.45; }
.rsvpbook-regtype-button { display:inline-flex; align-items:center; justify-content:center; margin-top:auto; min-height:44px; padding:10px 18px; border-radius:10px; background:var(--rbw-accent); color:#fff !important; text-decoration:none !important; font-weight:700; }
.rsvpbook-regtype-button:hover { filter:brightness(.94); }
.rsvpbook-regtype-button.is-disabled { background:#94a3b8; cursor:not-allowed; filter:none; }
@media (max-width: 900px) { .rsvpbook-regtype-grid,.rsvpbook-regtype-grid--4 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 620px) { .rsvpbook-regtype-grid,.rsvpbook-regtype-grid--2,.rsvpbook-regtype-grid--4 { grid-template-columns:1fr; } }
