/* Event-widget geometry. Shared typography and controls belong to
   rheinspiel-design; ordinary page layout remains editable in Elementor. */
.rsg-page { --rsg-ink:#202222; --rsg-muted:#595f5b; --rsg-paper:#f6f2e9; --rsg-accent:#a84b24; --rsg-line:#d7d6cb; color:var(--rsg-ink); background:var(--rsg-paper); overflow-wrap:anywhere; }
.rsg-page * { box-sizing:border-box; }
.rsg-page .rsg-shell { width:min(1160px,calc(100% - 80px)); margin-inline:auto; }
/* Typography is provided by the shared design plugin and Elementor globals. */
.rsg-page h1,
.rsg-page h2,
.rsg-page h3 {
    color:inherit;
}

.rsg-page h1 {
    font-weight:700;
    letter-spacing:-.02em;
}

.rsg-page h2,
.rsg-page h3 {
    font-weight:600;
    letter-spacing:-.02em;
}
.rsg-page p { margin:0 0 1.2em; }
.rsg-page .rsg-hero {
    background:radial-gradient(ellipse at top right,#554431 0%,#29291f 58%);
    color:#fff;
    /* The existing theme header overlaps the first section. Leave enough
       room for the wordmark to remain fully visible below that header. */
    padding:112px 0 76px;
    border-bottom:6px solid #b45c2b;
}

.rsg-page .rsg-hero-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);
    align-items:center;
    gap:56px;
}

.rsg-page .rsg-brand {
    display:inline-flex;
    padding:10px 16px;
    margin-bottom:28px;
    background:#f2e7df;
    border-radius:5px;
}

.rsg-page .rsg-brand svg {
    display:block;
    width:210px;
    height:auto;
    overflow:hidden;
}

/* Keep the real photograph visible, rather than hiding it behind a dark
   background overlay. The paper edge echoes the supplied print material. */
.rsg-page .rsg-hero-photo {
    position:relative;
    margin:0;
    padding:10px 10px 0;
    background:#f2e7df;
    color:#343424;
    border-radius:7px;
    transform:rotate(2deg);
    box-shadow:0 18px 45px #0004;
}

.rsg-page .rsg-hero-photo .rsg-table-photo {
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:5 / 4;
    object-fit:cover;
    object-position:52% center;
    border-radius:3px;
}

.rsg-page .rsg-hero-photo figcaption {
    padding:16px 50px 18px 4px;

    font-weight:700;
}

.rsg-page .rsg-hero-photo .rsg-photo-dice {
    position:absolute;
    right:-14px;
    bottom:-16px;
    width:76px;
    height:auto;
    padding:9px;
    background:#f2e7df;
    border-radius:50%;
    transform:rotate(-14deg);
    box-shadow:0 3px 10px #0002;
    overflow:hidden;
}
.rsg-page h1 { margin:0 0 28px; max-width:850px; }
.rsg-page h1 span {
    color:#efb58d;

    font-weight:700;
    letter-spacing:.01em;
}
.rsg-page .rsg-intro { max-width:640px; color:#f1f1e9; }
.rsg-page .rsg-facts { display:flex; flex-wrap:wrap; gap:10px 24px; margin:26px 0 32px;  }
.rsg-page .rsg-facts span { border-left:2px solid #dc9563; padding-left:10px; }
.rsg-page .rsg-button { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; padding:15px 22px; border:2px solid var(--rsg-accent); border-radius:5px; background:var(--rsg-accent); color:white; font-weight:600; text-decoration:none; cursor:pointer; }
.rsg-page .rsg-button:hover { color:#fff; background:#843a1b; border-color:#843a1b; }
.rsg-page a:not(.rsg-button) { color:#8c3c1b; text-decoration:underline; text-underline-offset:3px; }
.rsg-page :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #167664; outline-offset:4px; }
.rsg-page .rsg-section { padding-block:76px; scroll-margin-top:30px; }
.rsg-page h2 { margin:0 0 24px; }
.rsg-page .rsg-rule { color:var(--rsg-muted); max-width:900px;  }
.rsg-page .rsg-events { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin:34px 0 22px; }
.rsg-page .rsg-event:only-child { grid-column:1 / -1; width:min(100%,760px); justify-self:center; }
.rsg-page .rsg-event { background:#fffdfa; border:1px solid var(--rsg-line); border-radius:10px; padding:30px; display:flex; flex-direction:column; box-shadow:0 8px 30px #262c2010; }
.rsg-page .rsg-month { font-weight:600; }
.rsg-page .rsg-event time { display:block; margin-bottom:24px; }
.rsg-page .rsg-event-date > span { display:block; }
.rsg-page .rsg-event time strong { font-weight:500; color:var(--rsg-accent); letter-spacing:-.07em; }
.rsg-page h3 { margin:0 0 20px; }
.rsg-page .rsg-description { color:var(--rsg-muted); flex:1; }
.rsg-page .rsg-count { border-top:1px solid var(--rsg-line); padding-top:20px; margin-top:12px; }
.rsg-page .rsg-count span { color:#33725b; margin-right:6px; }
.rsg-page .rsg-note { background:#f6ede1; border-left:3px solid #a84b24; padding:12px;  }
.rsg-page .rsg-small { color:var(--rsg-muted); }
.rsg-page .rsg-anchor { display:block; scroll-margin-top:100px; }
.rsg-page .rsg-event-kind { color:var(--rsg-accent); font-weight:600; margin-bottom:10px; }
.rsg-page .rsg-event-guidance { margin-top:32px; padding-top:26px; border-top:1px solid var(--rsg-line); color:var(--rsg-muted); }
.rsg-page .rsg-event-guidance h3 { color:var(--rsg-ink); }
.rsg-page .rsg-schedule-rule summary { cursor:pointer; font-weight:600; color:var(--rsg-ink); }
.rsg-page .rsg-schedule-rule p { margin-top:12px; max-width:900px; }
.rsg-page .rsg-tcg-meta { font-weight:600; color:var(--rsg-accent); }
/* Keep the official artwork intact: scale proportionally, with clear space.
   The supplied white Riftbound mark needs a dark surface for contrast. */
.rsg-page .rsg-event-brand { display:flex; align-items:center; justify-content:center; width:100%; height:120px; padding:20px; margin:0 0 22px; border-radius:6px; background:#fff; border:1px solid var(--rsg-line); }
.rsg-page .rsg-event-brand--riftbound { background:#243e35; border-color:#243e35; }
/* Equal visible height gives marks with different aspect ratios similar weight.
   On small cards, contain the whole mark instead of stretching or clipping it. */
.rsg-page .rsg-event-brand img,
.rsg-page .rsg-event-brand svg { display:block; width:auto; height:76px; max-width:100%; object-fit:contain; }
.rsg-page .rsg-tcg-event > .rsg-button { margin-top:16px; }
.rsg-page .rsg-tcg-registration { display:flex; align-items:center; flex-wrap:wrap; gap:18px; margin-top:20px; }
.rsg-page .rsg-tcg-qr { background:#fff; flex:0 0 140px; }
.rsg-page .rsg-tcg-qr canvas { display:block; width:140px; height:140px; image-rendering:pixelated; }
.rsg-page .rsg-tcg-qr[hidden] { display:none; }
.rsg-page .rsg-registration { background:#eee5d6; padding:76px 0; scroll-margin-top:24px; }
.rsg-page .rsg-registration[hidden] { display:none; }
.rsg-page .rsg-form-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; }
.rsg-page .rsg-form-layout > div { min-width:0; }
.rsg-page .rsg-form-layout > div:first-child > p { color:#4a554e; }
.rsg-page .rsg-steps { list-style:none; padding:0; margin:30px 0; counter-reset:steps; }
.rsg-page .rsg-steps li { counter-increment:steps; position:relative; padding-left:44px; margin:22px 0;  }
.rsg-page .rsg-steps li::before { content:counter(steps); position:absolute; left:0; top:1px; display:grid; place-items:center; width:28px; height:28px; border:1px solid #849482; border-radius:50%; font-weight:600; }
.rsg-page .rsg-steps strong,.rsg-page .rsg-steps span { display:block; }
.rsg-page .rsg-steps span { color:#4a554e;  }
.rsg-page .rsg-location { margin-top:40px; }
.rsg-page .rsg-registration-photo {
    margin:26px 0;
    padding:7px 7px 0;
    background:#fffdfa;
    border:1px solid #d8cbb9;
    border-radius:7px;
}

.rsg-page .rsg-registration-photo img {
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:16 / 10;
    object-fit:cover;
    border-radius:3px;
}

.rsg-page .rsg-registration-photo figcaption {
    padding:12px 8px;

    font-weight:600;

    color:#604b38;
}
.rsg-page .rsg-form-panel { background:#fffdfa; border:1px solid #d0d7ce; padding:34px; border-radius:10px; scroll-margin-top:100px; }
.rsg-page .rsg-form > label:not(.rsg-check) { display:block; font-weight:600; margin:18px 0 7px; color:#292e29; }
.rsg-page .rsg-form > label:first-of-type { margin-top:0; }
.rsg-page .rsg-form :is(input:not([type=checkbox]):not([type=hidden]),select,textarea) { display:block; width:100%; max-width:100%; color:#202222; background:#fff; padding:12px; border:1px solid #8a958c; border-radius:4px; min-height:48px; box-shadow:none; }
.rsg-page .rsg-form textarea { resize:vertical; }
.rsg-page .rsg-field-help { margin:5px 0 0; color:var(--rsg-muted); }
.rsg-page .rsg-field-error { padding:12px; border-left:3px solid #a12620; background:#fff0ed; color:#8b1c16;  }
.rsg-page .rsg-field-error[hidden] { display:none; }
.rsg-page .rsg-optional { font-weight:400; }
.rsg-page .rsg-check { display:flex; gap:10px; align-items:flex-start; margin:20px 0; font-weight:400; cursor:pointer; }
.rsg-page .rsg-check input { flex:0 0 18px; width:18px; height:18px; margin:3px 0 0; accent-color:var(--rsg-accent); }
.rsg-page .rsg-form .rsg-button { width:100%; margin:8px 0 16px; }
.rsg-page .rsg-feedback { padding:18px; border-radius:5px; margin-bottom:22px;  }
.rsg-page .rsg-feedback p { margin:8px 0 0; }
.rsg-page .rsg-success { background:#e2efdf; border:1px solid #809b75; }
.rsg-page .rsg-error { background:#f8e7df; border:1px solid #b24b29; }
.rsg-page .rsg-trap { position:absolute!important; left:-10000px; width:1px; height:1px; overflow:hidden; }
@media (max-width:850px) {
    .rsg-page .rsg-shell { width:calc(100% - 40px); }
    .rsg-page .rsg-form-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
    .rsg-page .rsg-events { gap:18px; }
    .rsg-page .rsg-event { padding:24px; }
    .rsg-page .rsg-hero-layout { grid-template-columns:minmax(0,1fr); gap:38px; }
    .rsg-page .rsg-hero-photo { width:min(100% - 12px,580px); justify-self:center; }
    .rsg-page .rsg-hero-photo .rsg-table-photo { aspect-ratio:3 / 2; }
}
@media (max-width:600px) {
    .rsg-page .rsg-hero { padding:104px 0 48px; }
    .rsg-page .rsg-events { grid-template-columns:1fr; }
    .rsg-page .rsg-section,.rsg-page .rsg-registration { padding-block:48px; }
    .rsg-page .rsg-facts { gap:12px; }
    .rsg-page .rsg-form-panel { padding:22px; }
    .rsg-page .rsg-event .rsg-button { gap:12px; }
    .rsg-page .rsg-hero-photo .rsg-photo-dice { right:-6px; width:65px; }
}
@media (prefers-reduced-motion:reduce) { .rsg-page * { scroll-behavior:auto!important; transition:none!important; } }
/* Native Elementor containers own their columns, gaps and responsive layout.
   These defaults provide the existing visual skin; editor controls can override them. */
.rsg-page.rsg-elementor { --widgets-spacing:0px; gap:0; }
.rsg-elementor .elementor-widget { min-width:0; }
.rsg-elementor .elementor-widget-text-editor { color:inherit;  }
.rsg-elementor .elementor-widget-heading .elementor-heading-title { color:inherit; }
.rsg-elementor .rsg-native-brand { align-self:flex-start; width:242px; padding:10px 16px; margin-bottom:28px; background:#f2e7df; border-radius:5px; }
.rsg-elementor .rsg-native-brand img { width:210px; }
.rsg-elementor .rsg-native-facts { margin:12px 0 18px;  }
.rsg-elementor .rsg-native-button .elementor-button { padding:15px 22px; background:#a84b24; color:#fff; border-radius:9px; text-decoration:none; }
.rsg-elementor .rsg-native-button .elementor-button:hover { background:#843a1b; }
.rsg-elementor .rsg-native-hero-photo { padding:10px 10px 0; background:#f2e7df; color:#343424; border-radius:7px; transform:rotate(2deg); box-shadow:0 18px 45px #0004; }
.rsg-elementor .rsg-native-hero-photo img { display:block; width:100%; aspect-ratio:5/4; object-fit:cover; object-position:52% center; border-radius:3px; }
.rsg-elementor .rsg-native-hero-photo .widget-image-caption { padding:16px 4px 18px; color:inherit; }
.rsg-elementor .rsg-native-registration-photo { margin:26px 0; padding:7px 7px 0; background:#fffdfa; border:1px solid #d8cbb9; border-radius:7px; }
.rsg-elementor .rsg-native-registration-photo img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:3px; }
.rsg-elementor .rsg-native-registration-photo .widget-image-caption { padding:12px 8px; color:#604b38; }
.rsg-elementor .rsg-registration[hidden] { display:none!important; }
@media (max-width:767px) {
    .rsg-elementor .rsg-native-hero-photo { width:calc(100% - 12px); align-self:center; }
    .rsg-elementor .rsg-native-hero-photo img { aspect-ratio:3/2; }
}
