/*
 * Public event and registration presentation.
 *
 * This stylesheet controls the standalone event pages and registration/manage
 * forms without carrying business logic or pricing rules.
 */
/* DPSG Event Manager – public event pages */
:root {
  --dem-radius:22px;
  --dem-shadow:0 18px 55px rgba(28,19,17,.10)
}
html {
  scroll-behavior:smooth
}
body.dem-standalone-body {
  margin:0;
  min-height:100vh;
  background:#f8f4ef;
  color:#252220;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility
}
.dem-standalone-body * {
  box-sizing:border-box
}
.dem-standalone-body a {
  color:inherit
}
.dem-standalone-shell {
  min-height:100vh;
  display:flex;
  flex-direction:column
}
.dem-standalone-main {
  flex:1;
  min-width:0
}
.dem-container {
  width:min(1180px,calc(100% - 40px));
  margin-inline:auto
}
/* Header */
.dem-site-header {
  position:sticky;
  top:0;
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding:.72rem max(20px,calc((100vw - 1180px)/2));
  background:rgba(251,248,244,.95);
  border-bottom:1px solid rgba(56,42,37,.08);
  backdrop-filter:blur(16px);
  box-shadow:0 4px 18px rgba(40,24,20,.04)
}
.dem-site-brand {
  display:flex;
  align-items:center;
  gap:.8rem;
  min-width:0;
  color:var(--dem-primary);
  font-weight:850;
  text-decoration:none;
  letter-spacing:-.02em
}
.dem-site-brand img {
  width:48px;
  height:48px;
  object-fit:contain;
  border-radius:12px
}
.dem-site-brand span {
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:43vw
}
.dem-site-nav {
  display:flex;
  align-items:center;
  gap:1.15rem;
  font-size:.93rem;
  font-weight:750
}
.dem-site-nav a {
  text-decoration:none;
  white-space:nowrap;
  transition:opacity .18s ease, transform .18s ease
}
.dem-site-nav a:hover {
  opacity:.72
}
.dem-site-nav .dem-nav-cta {
  background:var(--dem-primary);
  color:#fff;
  padding:.62rem 1rem;
  border-radius:999px;
  box-shadow:0 6px 16px rgba(0,0,0,.08)
}
.dem-site-nav .dem-nav-cta:hover {
  opacity:1;
  transform:translateY(-1px)
}
/* Landing page */
.dem-event {
  --dem-primary:#7b1f38;
  --dem-secondary:#f3e8dc;
  --dem-accent:#d2a55d;
  color:#252220
}
.dem-landing {
  width:100%;
  max-width:none;
  margin:0;
  background:#fff;
  overflow:hidden
}
.dem-landing h1, .dem-landing h2, .dem-landing h3, .dem-landing h4 {
  font-family:ui-serif, Georgia, Cambria, "Times New Roman", serif;
  letter-spacing:-.025em
}
.dem-landing h2 {
  font-size:clamp(2.1rem,4.2vw,3.7rem);
  line-height:1.04;
  margin:.15rem 0 1.15rem
}
.dem-eyebrow {
  margin:0 0 .45rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.78rem;
  font-weight:850;
  color:var(--dem-primary)
}
/* Hero */
.dem-hero {
  position:relative;
  isolation:isolate;
  min-height:clamp(590px,76vh,790px);
  display:flex;
  align-items:flex-end;
  background-color:var(--dem-primary);
  background-size:cover;
  background-position:center;
  color:#fff;
  overflow:hidden
}
.dem-hero::after {
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:32%;
  z-index:-1;
  background:linear-gradient(to top,rgba(15,6,8,.34),transparent);
  pointer-events:none
}
.dem-hero-inner {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:3rem;
  padding-block:clamp(5rem,10vw,8.4rem) clamp(4rem,7vw,6.4rem)
}
.dem-hero-copy {
  max-width:820px
}
.dem-hero-logo {
  width:auto;
  max-width:min(190px,36vw);
  height:auto;
  max-height:150px;
  object-fit:contain;
  margin-bottom:1.5rem;
  filter:drop-shadow(0 8px 24px rgba(0,0,0,.24))
}
.dem-kicker {
  margin:0 0 .8rem;
  text-transform:uppercase;
  letter-spacing:.17em;
  font-size:.78rem;
  font-weight:850;
  color:#fff
}
.dem-hero h1 {
  font-size:clamp(3rem,7.2vw,6.5rem);
  line-height:.92;
  margin:0;
  max-width:950px;
  text-wrap:balance;
  text-shadow:0 3px 25px rgba(0,0,0,.22)
}
.dem-subtitle {
  max-width:800px;
  margin:1.25rem 0 0;
  font-size:clamp(1.18rem,2.3vw,1.8rem);
  line-height:1.3;
  font-weight:600;
  color:rgba(255,255,255,.94)
}
.dem-hero-facts {
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
  margin-top:1.8rem
}
.dem-hero-facts>span {
  display:grid;
  gap:.06rem;
  min-width:130px;
  padding:.62rem .82rem;
  border:1px solid rgba(255,255,255,.22);
  border-radius:14px;
  background:rgba(25,10,14,.30);
  backdrop-filter:blur(7px)
}
.dem-hero-facts small {
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:rgba(255,255,255,.72);
  font-weight:800
}
.dem-hero-facts strong {
  font-size:.98rem
}
.dem-hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  margin-top:1.8rem
}
.dem-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:.78rem 1.25rem;
  border-radius:999px;
  text-decoration:none;
  font-weight:800;
  line-height:1.1;
  transition:transform .18s ease, filter .18s ease, box-shadow .18s ease
}
.dem-button:hover {
  transform:translateY(-2px)
}
.dem-button-primary {
  background:var(--dem-primary);
  color:#fff;
  box-shadow:0 10px 25px rgba(0,0,0,.22)
}
.dem-button-ghost {
  border:1px solid rgba(255,255,255,.55);
  background:rgba(255,255,255,.11);
  color:#fff;
  backdrop-filter:blur(9px)
}
.dem-button-light {
  background:#fff;
  color:var(--dem-primary);
  box-shadow:0 8px 22px rgba(0,0,0,.12)
}
.dem-hero-badges {
  align-self:flex-end;
  display:grid;
  gap:.65rem;
  max-width:250px;
  margin-bottom:.5rem
}
.dem-hero-badges span {
  display:block;
  padding:.72rem 1rem;
  border-radius:14px;
  background:rgba(255,255,255,.91);
  color:var(--dem-primary);
  font-weight:850;
  transform:rotate(-1.5deg);
  box-shadow:0 10px 30px rgba(0,0,0,.16)
}
.dem-hero-badges span+span {
  transform:rotate(1.5deg);
  background:var(--dem-accent);
  color:#2a2119
}
/* Quick facts */
.dem-quickfacts {
  position:relative;
  z-index:4;
  margin-top:-26px
}
.dem-quickfacts-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  background:#fff;
  border-radius:20px;
  box-shadow:var(--dem-shadow);
  overflow:hidden;
  border:1px solid rgba(61,42,35,.07)
}
.dem-quickfact {
  display:flex;
  flex-direction:column;
  min-height:128px;
  padding:1.35rem 1.45rem;
  border-right:1px solid rgba(61,42,35,.08)
}
.dem-quickfact:last-child {
  border-right:0
}
.dem-quickfact-label {
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-weight:850;
  color:var(--dem-primary);
  margin-bottom:.35rem
}
.dem-quickfact strong {
  font-size:1.05rem;
  line-height:1.28
}
.dem-quickfact small {
  display:block;
  margin-top:.25rem;
  color:#756d68;
  line-height:1.35
}
/* Generic sections */
.dem-section {
  padding-block:clamp(4.5rem,8vw,7.5rem);
  scroll-margin-top:84px
}
.dem-section-heading {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);
  gap:3rem;
  align-items:end;
  margin-bottom:2.5rem
}
.dem-section-heading>p {
  margin:0;
  color:#6e6560;
  max-width:560px;
  justify-self:end
}
.dem-section-heading h2 {
  margin-bottom:0
}
.dem-section-heading-light .dem-eyebrow, .dem-section-heading-light h2, .dem-section-heading-light>p {
  color:#fff
}
.dem-section-copy {
  max-width:720px
}
.dem-richtext {
  font-size:1.08rem;
  color:#4b4541
}
.dem-richtext>p:first-child {
  margin-top:0
}
.dem-richtext>p:last-child {
  margin-bottom:0
}
.dem-richtext a {
  color:var(--dem-primary);
  font-weight:700
}
/* Intro */
.dem-intro-section {
  background:#fff
}
.dem-intro-grid {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  gap:clamp(3rem,7vw,6.5rem);
  align-items:center
}
.dem-highlight-card {
  background:var(--dem-secondary);
  padding:clamp(1.6rem,3vw,2.35rem);
  border-radius:var(--dem-radius);
  box-shadow:0 14px 35px rgba(58,39,31,.07);
  border:1px solid rgba(86,58,45,.07)
}
.dem-highlight-kicker {
  display:block;
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:850;
  color:var(--dem-primary);
  margin-bottom:1rem
}
.dem-steps {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:1rem
}
.dem-steps li {
  display:grid;
  grid-template-columns:38px 1fr;
  gap:.85rem;
  align-items:start
}
.dem-steps li>span {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:var(--dem-primary);
  color:#fff;
  font-weight:850
}
.dem-steps strong, .dem-steps small {
  display:block
}
.dem-steps small {
  margin-top:.15rem;
  color:#6b625d;
  line-height:1.4
}
.dem-text-link {
  display:inline-block;
  margin-top:1.25rem;
  color:var(--dem-primary);
  font-weight:850;
  text-decoration:none
}
/* Voucher section */
.dem-voucher-section {
  background:var(--dem-primary);
  color:#fff;
  position:relative;
  overflow:hidden
}
.dem-voucher-section::before {
  content:"";
  position:absolute;
  width:520px;
  height:520px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  right:-230px;
  top:-250px;
  box-shadow:0 0 0 80px rgba(255,255,255,.025), 0 0 0 160px rgba(255,255,255,.02)
}
.dem-voucher-section>.dem-container {
  position:relative;
  z-index:1
}
.dem-voucher-cards {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem
}
.dem-voucher-card {
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:245px;
  padding:1.45rem;
  border-radius:18px;
  background:#fff;
  color:#2c2724;
  box-shadow:0 12px 30px rgba(0,0,0,.13)
}
.dem-voucher-card>p {
  margin:0 0 1.2rem;
  font-weight:750;
  color:#675d57
}
.dem-voucher-value {
  font-family:ui-serif, Georgia, serif;
  font-size:clamp(2.2rem,4vw,3.35rem);
  line-height:1;
  color:var(--dem-primary)
}
.dem-voucher-caption {
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:#867b74;
  margin-top:.2rem
}
.dem-voucher-price {
  margin-top:auto;
  padding-top:1.2rem;
  display:flex;
  justify-content:space-between;
  align-items:end;
  border-top:1px solid #eee4dd
}
.dem-voucher-price span {
  font-size:.84rem;
  color:#766c66
}
.dem-voucher-price strong {
  font-size:1.22rem
}
.dem-voucher-card>small {
  margin-top:.45rem;
  color:#6d625c
}
.dem-saving-badge {
  position:absolute;
  right:12px;
  top:12px;
  background:var(--dem-accent);
  color:#2b241d;
  border-radius:999px;
  padding:.35rem .55rem;
  font-size:.7rem;
  font-weight:900
}
.dem-voucher-cta {
  display:flex;
  align-items:center;
  gap:1.1rem;
  flex-wrap:wrap;
  margin-top:2rem
}
.dem-voucher-cta>span {
  color:rgba(255,255,255,.74);
  font-size:.9rem
}
/* Menu */
.dem-menu-section {
  background:#fbf8f4
}
.dem-menu-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.35rem
}
.dem-menu-cat {
  margin:0;
  padding:1.5rem 1.55rem;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(70,49,41,.07);
  box-shadow:0 10px 30px rgba(60,38,30,.045)
}
.dem-menu-cat h3 {
  margin:0 0 .8rem;
  color:var(--dem-primary);
  font-size:1.65rem;
  padding-bottom:.65rem;
  border-bottom:2px solid var(--dem-accent)
}
.dem-product {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  padding:.75rem 0;
  border-bottom:1px solid rgba(67,47,40,.08)
}
.dem-product:last-child {
  border-bottom:0;
  padding-bottom:0
}
.dem-product small {
  display:block;
  margin-top:.12rem;
  color:#7b716b;
  font-size:.84rem;
  line-height:1.35
}
.dem-product-price {
  white-space:nowrap;
  font-weight:850;
  color:var(--dem-primary)
}
.dem-placeholder-card {
  padding:2rem;
  border:1px dashed rgba(123,31,56,.25);
  border-radius:18px;
  background:#fff;
  max-width:760px
}
.dem-placeholder-card strong {
  font-family:ui-serif, Georgia, serif;
  font-size:1.45rem;
  color:var(--dem-primary)
}
.dem-placeholder-card p {
  margin:.45rem 0 0;
  color:#6d645f
}
/* Registration */
.dem-registration-section {
  background:var(--dem-secondary)
}
.dem-registration-heading {
  margin-bottom:2rem
}
.dem-registration-layout {
  display:grid;
  grid-template-columns:320px minmax(0,1fr);
  gap:1.35rem;
  align-items:start
}
.dem-registration-aside {
  position:sticky;
  top:96px;
  padding:1.6rem;
  border-radius:18px;
  background:var(--dem-primary);
  color:#fff;
  box-shadow:0 13px 32px rgba(58,23,34,.14)
}
.dem-registration-aside h3 {
  font-size:1.65rem;
  margin:0 0 1rem
}
.dem-registration-aside ul {
  margin:0;
  padding-left:1.2rem;
  display:grid;
  gap:.7rem;
  color:rgba(255,255,255,.89)
}
.dem-deadline {
  margin-top:1.35rem;
  padding-top:1.1rem;
  border-top:1px solid rgba(255,255,255,.2)
}
.dem-deadline small, .dem-deadline strong {
  display:block
}
.dem-deadline small {
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.68rem;
  color:rgba(255,255,255,.68)
}
.dem-form-card {
  padding:clamp(1.35rem,3vw,2.25rem);
  border-radius:20px;
  background:#fff;
  box-shadow:0 15px 40px rgba(57,38,30,.08)
}
.dem-form fieldset {
  border:0;
  padding:0;
  margin:0
}
.dem-form legend {
  font-family:ui-serif, Georgia, serif;
  font-size:1.45rem;
  font-weight:800;
  color:var(--dem-primary);
  margin-bottom:1.1rem
}
.dem-form label {
  display:block;
  font-weight:700;
  font-size:.9rem;
  color:#403a37
}
.dem-form input, .dem-form select, .dem-form textarea {
  width:100%;
  box-sizing:border-box;
  padding:.78rem .82rem;
  border:1px solid #d7cdc6;
  border-radius:10px;
  background:#fff;
  margin-top:.32rem;
  font:inherit;
  color:#2a2725;
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease
}
.dem-form input:focus, .dem-form select:focus, .dem-form textarea:focus {
  border-color:var(--dem-primary);
  box-shadow:0 0 0 3px rgba(123,31,56,.09)
}
.dem-form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin-bottom:1rem
}
.dem-optional {
  font-weight:500;
  color:#8b817b;
  font-size:.8rem
}
.dem-form-section-title {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.8rem
}
.dem-form-section-title h4 {
  font-family:ui-serif, Georgia, serif;
  color:var(--dem-primary);
  font-size:1.4rem;
  margin:0
}
.dem-form-section-title p {
  margin:.1rem 0 0;
  color:#776d67;
  font-size:.87rem
}
.dem-extra-attendees, .dem-vouchers {
  margin-top:2rem;
  padding-top:1.7rem;
  border-top:1px solid #eadfd8
}
.dem-attendee-row {
  display:grid;
  grid-template-columns:1fr 1fr 1fr 42px;
  gap:.65rem;
  align-items:end;
  margin:.75rem 0;
  padding:.9rem;
  border-radius:12px;
  background:#fbf8f5
}
.dem-attendee-row label>span {
  display:block;
  font-size:.72rem;
  color:#776f69
}
.dem-attendee-row input, .dem-attendee-row select {
  margin-top:.2rem
}
.dem-remove {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:0;
  border-radius:50%;
  background:#f4e8e8;
  color:#a32c32;
  font-size:1.35rem;
  cursor:pointer;
  margin-bottom:1px
}
.dem-primary-button, .dem-secondary-button {
  border:0;
  border-radius:999px;
  padding:.78rem 1.12rem;
  font-weight:850;
  cursor:pointer;
  font:inherit;
  line-height:1.2
}
.dem-primary-button {
  background:var(--dem-primary);
  color:#fff;
  box-shadow:0 8px 18px rgba(90,28,49,.13)
}
.dem-secondary-button {
  background:#fff;
  color:var(--dem-primary);
  border:1px solid rgba(123,31,56,.35)
}
.dem-form-voucher-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem
}
.dem-package-card {
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1rem!important;
  border:1px solid #e5dad3;
  border-radius:13px;
  background:#fff;
  margin:0!important;
  cursor:pointer
}
.dem-package-card:hover {
  border-color:rgba(123,31,56,.4)
}
.dem-package-copy strong, .dem-package-copy small {
  display:block
}
.dem-package-copy small {
  font-weight:500;
  color:#786f69;
  margin-top:.16rem
}
.dem-package-qty {
  min-width:76px;
  text-align:right
}
.dem-package-qty small {
  display:block;
  color:#837972;
  font-weight:600
}
.dem-package-qty input {
  width:70px!important;
  text-align:center;
  margin:.16rem 0 0!important
}
.dem-voucher-summary {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  margin-top:.8rem;
  padding:.9rem 1rem;
  border-radius:12px;
  background:var(--dem-secondary);
  color:#4d4540
}
.dem-voucher-summary strong {
  color:var(--dem-primary)
}
.dem-form-submit {
  display:flex;
  align-items:center;
  gap:1rem;
  margin-top:1.8rem
}
.dem-form-submit small {
  max-width:430px;
  color:#746b66;
  line-height:1.35
}
.dem-registration-closed {
  display:flex;
  flex-direction:column;
  gap:.2rem;
  padding:1.3rem 1.5rem;
  background:#fff;
  border-radius:16px;
  max-width:720px;
  box-shadow:0 10px 28px rgba(60,40,33,.06)
}
.dem-notice {
  padding:1rem 1.1rem;
  border-radius:12px;
  background:#fff1c7;
  margin:0 0 1rem;
  border:1px solid rgba(160,118,20,.18)
}
.dem-notice.success {
  background:#e8f5eb;
  border-color:#b9dec0;
  color:#235f31
}
/* Contact */
.dem-contact-section {
  background:#fff
}
.dem-contact-grid {
  display:grid;
  grid-template-columns:1fr minmax(300px,.7fr);
  gap:3rem;
  align-items:center
}
.dem-contact-grid h2 {
  margin-bottom:.5rem
}
.dem-contact-grid p {
  max-width:590px;
  color:#6e6560
}
.dem-contact-card {
  display:flex;
  flex-direction:column;
  gap:.3rem;
  padding:1.45rem 1.6rem;
  border-radius:16px;
  background:var(--dem-secondary)
}
.dem-contact-card strong {
  font-size:1.08rem;
  color:var(--dem-primary)
}
.dem-contact-card a {
  color:var(--dem-primary);
  font-weight:750;
  text-decoration:none
}
/* Footer */
.dem-site-footer {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  padding:1.4rem max(20px,calc((100vw - 1180px)/2));
  background:#241b1e;
  color:rgba(255,255,255,.82);
  font-size:.86rem
}
.dem-site-footer a {
  color:#fff
}
.dem-site-footer-links {
  display:flex;
  gap:.35rem
}
/* Self-service / management page */
.dem-view-manage .dem-standalone-main {
  padding:2rem 0 3rem
}
.dem-manage {
  max-width:920px;
  margin:0 auto;
  background:#fff;
  border-radius:20px;
  overflow:hidden;
  box-shadow:var(--dem-shadow)
}
.dem-manage .dem-section {
  padding:clamp(1.4rem,4vw,2.6rem)
}
.dem-manage h2 {
  font-family:ui-serif, Georgia, serif;
  font-size:2.1rem;
  color:var(--dem-primary);
  margin-top:0
}
.dem-manage h3 {
  font-family:ui-serif, Georgia, serif;
  color:var(--dem-primary);
  font-size:1.45rem;
  margin-top:2rem
}
.dem-manage-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:1rem 0;
  border-bottom:1px solid rgba(0,0,0,.09)
}
.dem-manage-row small {
  display:block;
  opacity:.67;
  margin-top:.15rem
}
.dem-inline {
  display:inline
}
.dem-link-button {
  border:0;
  background:none;
  color:#b32d2e;
  text-decoration:underline;
  cursor:pointer;
  padding:.4rem
}
.dem-manage details {
  margin:1rem 0;
  border:1px solid #ddd;
  border-radius:10px;
  padding:1rem
}
.dem-manage summary {
  cursor:pointer;
  font-weight:800;
  color:var(--dem-primary)
}
.dem-form.compact {
  margin-top:1rem
}
.dem-manage .button {
  display:inline-block;
  padding:.45rem .8rem;
  border:1px solid var(--dem-primary);
  border-radius:7px;
  color:var(--dem-primary);
  text-decoration:none
}
.dem-manage .dem-package {
  display:flex!important;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:.8rem 0;
  border-bottom:1px solid rgba(0,0,0,.1)
}
.dem-manage .dem-package small {
  display:block;
  font-weight:400;
  opacity:.75
}
.dem-manage .dem-package input {
  width:80px!important;
  margin:0!important
}
/* Accessibility */
.dem-site-header a:focus-visible, .dem-button:focus-visible, .dem-form button:focus-visible, .dem-form input:focus-visible, .dem-form select:focus-visible, .dem-form textarea:focus-visible {
  outline:3px solid var(--dem-accent);
  outline-offset:3px
}
/* Tablet */
@media(max-width:980px) {
  .dem-hero-inner {
    align-items:flex-end
  }
  .dem-hero-badges {
    display:none
  }
  .dem-quickfacts-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .dem-quickfact:nth-child(2) {
    border-right:0
  }
  .dem-quickfact:nth-child(-n+2) {
    border-bottom:1px solid rgba(61,42,35,.08)
  }
  .dem-intro-grid {
    grid-template-columns:1fr;
    gap:2.5rem
  }
  .dem-highlight-card {
    max-width:680px
  }
  .dem-voucher-cards {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .dem-registration-layout {
    grid-template-columns:1fr
  }
  .dem-registration-aside {
    position:static
  }
  .dem-registration-aside ul {
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding-left:1.2rem
  }
}
/* Mobile */
@media(max-width:760px) {
  .dem-container {
    width:min(100% - 28px,1180px)
  }
  .dem-site-header {
    align-items:flex-start;
    gap:.55rem;
    flex-direction:column;
    padding:.62rem 14px
  }
  .dem-site-brand img {
    width:40px;
    height:40px
  }
  .dem-site-brand span {
    max-width:80vw
  }
  .dem-site-nav {
    width:100%;
    gap:.8rem;
    overflow:auto;
    padding-bottom:.15rem;
    font-size:.86rem
  }
  .dem-site-nav .dem-nav-cta {
    padding:.5rem .85rem
  }
  .dem-hero {
    min-height:630px
  }
  .dem-hero-inner {
    padding-block:5.3rem 3.8rem
  }
  .dem-hero-logo {
    max-height:105px
  }
  .dem-hero h1 {
    font-size:clamp(2.7rem,13vw,4.6rem)
  }
  .dem-subtitle {
    font-size:1.1rem
  }
  .dem-hero-facts {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.55rem
  }
  .dem-hero-facts>span {
    min-width:0
  }
  .dem-hero-actions {
    flex-direction:column;
    align-items:stretch;
    max-width:360px
  }
  .dem-button {
    width:100%
  }
  .dem-quickfacts {
    margin-top:-18px
  }
  .dem-quickfacts-grid {
    grid-template-columns:1fr
  }
  .dem-quickfact {
    min-height:0;
    border-right:0;
    border-bottom:1px solid rgba(61,42,35,.08)!important;
    padding:1rem 1.2rem
  }
  .dem-quickfact:last-child {
    border-bottom:0!important
  }
  .dem-section {
    padding-block:4rem
  }
  .dem-section-heading {
    grid-template-columns:1fr;
    gap:.7rem;
    margin-bottom:1.7rem
  }
  .dem-section-heading>p {
    justify-self:start
  }
  .dem-intro-grid {
    gap:2rem
  }
  .dem-voucher-cards {
    grid-template-columns:1fr 1fr;
    gap:.7rem
  }
  .dem-voucher-card {
    min-height:220px;
    padding:1.1rem
  }
  .dem-saving-badge {
    position:static;
    align-self:flex-start;
    margin-bottom:.7rem
  }
  .dem-voucher-value {
    font-size:2.15rem
  }
  .dem-menu-grid {
    grid-template-columns:1fr
  }
  .dem-menu-cat {
    padding:1.25rem
  }
  .dem-form-grid, .dem-form-voucher-grid {
    grid-template-columns:1fr
  }
  .dem-form-section-title {
    align-items:flex-start;
    flex-direction:column
  }
  .dem-attendee-row {
    grid-template-columns:1fr
  }
  .dem-remove {
    justify-self:end;
    margin-top:-4px
  }
  .dem-form-submit {
    align-items:stretch;
    flex-direction:column
  }
  .dem-form-submit .dem-primary-button {
    width:100%
  }
  .dem-registration-aside ul {
    grid-template-columns:1fr
  }
  .dem-contact-grid {
    grid-template-columns:1fr;
    gap:1.5rem
  }
  .dem-site-footer {
    flex-direction:column;
    padding:1.2rem 14px
  }
  .dem-view-manage .dem-standalone-main {
    padding:0
  }
  .dem-manage {
    border-radius:0;
    box-shadow:none
  }
  .dem-manage-row {
    align-items:flex-start;
    flex-direction:column
  }
}
@media(max-width:460px) {
  .dem-voucher-cards {
    grid-template-columns:1fr
  }
  .dem-hero-facts {
    grid-template-columns:1fr 1fr
  }
  .dem-hero-facts>span:last-child:nth-child(odd) {
    grid-column:1/-1
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  .dem-button, .dem-site-nav a {
    transition:none
  }
}
/* reduced editorial landing page ---------------------------------- */
.dem-landing-simple {
  background:#fff
}
.dem-landing-simple .dem-container {
  width:min(1180px,calc(100% - 48px))
}
.dem-landing-simple h2 {
  font-size:clamp(2rem,3.6vw,3.25rem);
  line-height:1.05;
  margin:0 0 2rem
}
/* Keep the strong hero, but remove decorative card/badge styling. */
.dem-landing-simple .dem-hero {
  min-height:clamp(610px,78vh,820px)
}
.dem-landing-simple .dem-hero-inner {
  padding-block:clamp(5.5rem,10vw,8.5rem) clamp(4.2rem,7vw,6.8rem)
}
.dem-landing-simple .dem-hero-copy {
  max-width:860px
}
.dem-landing-simple .dem-hero-facts {
  gap:1.5rem;
  margin-top:1.7rem
}
.dem-landing-simple .dem-hero-facts>span {
  min-width:135px;
  padding:.15rem 0 .15rem .9rem;
  border:0;
  border-left:2px solid rgba(255,255,255,.62);
  border-radius:0;
  background:none;
  backdrop-filter:none
}
.dem-landing-simple .dem-hero-facts small {
  font-size:.66rem
}
.dem-landing-simple .dem-hero-facts strong {
  font-size:1.02rem
}
.dem-landing-simple .dem-hero-address {
  margin:.8rem 0 0;
  color:rgba(255,255,255,.82);
  font-size:.94rem
}
.dem-landing-simple .dem-button {
  border-radius:5px;
  box-shadow:none;
  min-height:46px;
  padding:.74rem 1.1rem
}
.dem-landing-simple .dem-button:hover {
  transform:none;
  filter:brightness(.96)
}
.dem-landing-simple .dem-button-primary {
  background:var(--dem-primary);
  box-shadow:none
}
.dem-landing-simple .dem-button-ghost {
  background:transparent;
  backdrop-filter:none
}
/* Text section: editorial, no helper box. */
.dem-landing-simple .dem-section {
  padding-block:clamp(4.2rem,7vw,6.5rem)
}
.dem-editorial-section {
  display:grid;
  grid-template-columns:minmax(240px,.55fr) minmax(0,1.45fr);
  gap:clamp(2.5rem,7vw,7rem);
  align-items:start
}
.dem-editorial-section h2 {
  margin:0;
  color:var(--dem-primary)
}
.dem-editorial-section .dem-richtext {
  font-size:1.1rem;
  line-height:1.75;
  max-width:760px;
  color:#3e3936
}
/* Voucher section: strong colour field, simple price columns. */
.dem-landing-simple .dem-voucher-section {
  background:var(--dem-primary);
  color:#fff
}
.dem-landing-simple .dem-voucher-section::before {
  display:none
}
.dem-landing-simple .dem-voucher-section h2 {
  color:#fff
}
.dem-landing-simple .dem-voucher-cards {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  border-top:1px solid rgba(255,255,255,.28);
  border-bottom:1px solid rgba(255,255,255,.28)
}
.dem-landing-simple .dem-voucher-card {
  min-height:210px;
  padding:1.45rem 1.35rem;
  border-radius:0;
  background:transparent;
  color:#fff;
  box-shadow:none;
  border-right:1px solid rgba(255,255,255,.22)
}
.dem-landing-simple .dem-voucher-card:last-child {
  border-right:0
}
.dem-voucher-card-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:.8rem
}
.dem-landing-simple .dem-voucher-card>p, .dem-voucher-card-head p {
  margin:0 0 1.15rem;
  color:rgba(255,255,255,.84);
  font-weight:700
}
.dem-landing-simple .dem-voucher-value {
  color:#fff;
  font-size:clamp(2.25rem,4vw,3.3rem)
}
.dem-landing-simple .dem-voucher-caption {
  color:rgba(255,255,255,.62)
}
.dem-landing-simple .dem-voucher-price {
  margin-top:auto;
  padding-top:1rem;
  border-top:1px solid rgba(255,255,255,.2);
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.8rem
}
.dem-landing-simple .dem-voucher-price strong {
  font-size:1.35rem;
  color:var(--dem-accent)
}
.dem-landing-simple .dem-voucher-price span {
  font-size:.75rem;
  color:rgba(255,255,255,.66);
  text-transform:uppercase;
  letter-spacing:.08em
}
.dem-voucher-discount {
  font-size:.72rem;
  font-weight:850;
  border:1px solid rgba(255,255,255,.5);
  padding:.18rem .38rem;
  border-radius:3px;
  color:#fff;
  white-space:nowrap
}
.dem-simple-cta {
  margin-top:1.7rem
}
.dem-landing-simple .dem-button-light {
  background:#fff;
  color:var(--dem-primary)
}
/* Menu: no floating cards. */
.dem-landing-simple .dem-menu-section {
  background:#fff
}
.dem-landing-simple .dem-menu-section h2 {
  color:var(--dem-primary)
}
.dem-landing-simple .dem-menu-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:3rem 5rem
}
.dem-landing-simple .dem-menu-cat {
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none
}
.dem-landing-simple .dem-menu-cat h3 {
  font-size:1.65rem;
  margin:0 0 .55rem;
  padding:0 0 .5rem;
  border-bottom:2px solid var(--dem-primary);
  color:var(--dem-primary)
}
.dem-landing-simple .dem-product {
  padding:.72rem 0;
  border-bottom:1px solid #e7e0db
}
.dem-landing-simple .dem-product-price {
  font-weight:800;
  color:#292522
}
.dem-menu-placeholder {
  margin:0;
  max-width:720px;
  font-size:1.05rem;
  color:#504945
}
/* Registration: single clean column, no explainer sidebar. */
.dem-landing-simple .dem-registration-section {
  background:var(--dem-secondary)
}
.dem-registration-simple {
  max-width:980px
}
.dem-registration-simple>h2 {
  color:var(--dem-primary)
}
.dem-landing-simple .dem-form-card {
  padding:clamp(1.2rem,3vw,2.2rem);
  border-radius:0;
  background:#fff;
  box-shadow:none;
  border-top:4px solid var(--dem-primary)
}
.dem-landing-simple .dem-form legend {
  font-size:1.45rem
}
.dem-landing-simple .dem-form input, .dem-landing-simple .dem-form select, .dem-landing-simple .dem-form textarea {
  border-radius:3px;
  background:#fff
}
.dem-landing-simple .dem-primary-button, .dem-landing-simple .dem-secondary-button {
  border-radius:4px;
  box-shadow:none
}
.dem-landing-simple .dem-form-section-title {
  margin-bottom:.75rem
}
.dem-landing-simple .dem-form-section-title h4 {
  margin:0
}
.dem-landing-simple .dem-attendee-row {
  border-radius:0;
  background:#faf7f3;
  border:1px solid #e7ddd5
}
.dem-landing-simple .dem-remove {
  border-radius:3px
}
.dem-landing-simple .dem-package-card {
  border-radius:3px;
  background:#fff;
  padding:.9rem!important
}
.dem-landing-simple .dem-voucher-summary {
  border-radius:3px;
  background:#f4ece5
}
.dem-landing-simple .dem-form-submit {
  margin-top:1.6rem
}
.dem-landing-simple .dem-registration-closed {
  border-radius:0;
  box-shadow:none;
  border-left:4px solid var(--dem-primary)
}
/* Contact: text only. */
.dem-landing-simple .dem-contact-section {
  background:#fff;
  border-top:1px solid #eee7e2
}
.dem-contact-simple {
  display:grid;
  grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);
  gap:clamp(2.5rem,7vw,7rem);
  align-items:start
}
.dem-contact-simple h2 {
  margin:0;
  color:var(--dem-primary)
}
.dem-contact-simple>div {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.25rem;
  font-size:1rem
}
.dem-contact-simple a {
  color:var(--dem-primary);
  font-weight:750;
  text-decoration:none
}
/* Less rounded chrome in the standalone header as well. */
.dem-site-nav .dem-nav-cta {
  border-radius:4px;
  box-shadow:none
}
.dem-site-brand img {
  border-radius:0
}
@media(max-width:980px) {
  .dem-editorial-section, .dem-contact-simple {
    grid-template-columns:1fr;
    gap:1.3rem
  }
  .dem-landing-simple .dem-voucher-cards {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .dem-landing-simple .dem-voucher-card:nth-child(2n) {
    border-right:0
  }
  .dem-landing-simple .dem-voucher-card:nth-child(n+3) {
    border-top:1px solid rgba(255,255,255,.22)
  }
}
@media(max-width:760px) {
  .dem-landing-simple .dem-container {
    width:min(100% - 28px,1180px)
  }
  .dem-landing-simple .dem-section {
    padding-block:3.6rem
  }
  .dem-landing-simple .dem-hero {
    min-height:620px
  }
  .dem-landing-simple .dem-hero-facts {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.85rem 1rem
  }
  .dem-landing-simple .dem-hero-facts>span {
    padding-left:.7rem
  }
  .dem-landing-simple .dem-menu-grid {
    grid-template-columns:1fr;
    gap:2.5rem
  }
  .dem-landing-simple .dem-form-grid, .dem-landing-simple .dem-form-voucher-grid {
    grid-template-columns:1fr
  }
  .dem-landing-simple .dem-form-section-title {
    flex-direction:row;
    align-items:center
  }
}
@media(max-width:520px) {
  .dem-landing-simple .dem-voucher-cards {
    grid-template-columns:1fr
  }
  .dem-landing-simple .dem-voucher-card {
    border-right:0;
    border-top:1px solid rgba(255,255,255,.22)
  }
  .dem-landing-simple .dem-voucher-card:first-child {
    border-top:0
  }
}
/* 0.1.1: Anmeldung zuerst, Guthaben innerhalb der Anmeldung, optionales Programm */
.dem-wallet-preload {
  scroll-margin-top:90px
}
.dem-registration-info {
  margin:.35rem 0 1.1rem;
  color:#544b46
}
.dem-registration-info p:first-child, .dem-registration-intro p:first-child {
  margin-top:0
}
.dem-registration-info p:last-child, .dem-registration-intro p:last-child {
  margin-bottom:0
}
.dem-registration-intro {
  max-width:860px;
  margin:.35rem 0 1.5rem;
  color:#5e554f
}
.dem-program-section {
  background:var(--dem-secondary)
}
.dem-program-section .dem-editorial-section {
  max-width:920px
}
.dem-program-section .dem-richtext {
  max-width:820px
}
/* 0.1.2: Vollwertige Rich-Text-Inhalte in Programm/Guthaben/Anmeldehinweis */
.dem-richtext a {
  color:var(--dem-primary);
  text-decoration:underline;
  text-decoration-thickness:.08em;
  text-underline-offset:.16em
}
.dem-richtext a:hover, .dem-richtext a:focus {
  text-decoration-thickness:.14em
}
.dem-richtext img {
  max-width:100%;
  height:auto
}
.dem-richtext figure {
  max-width:100%;
  margin:1.35rem 0
}
.dem-richtext .wp-caption {
  max-width:100%
}
.dem-richtext .wp-caption-text, .dem-richtext figcaption {
  font-size:.9rem;
  color:#6b625c;
  margin-top:.45rem
}
.dem-richtext .aligncenter {
  display:block;
  margin-left:auto;
  margin-right:auto
}
.dem-richtext img.aligncenter {
  display:block;
  margin-left:auto;
  margin-right:auto
}
.dem-richtext .alignleft {
  float:left;
  margin:.35rem 1.35rem 1rem 0
}
.dem-richtext .alignright {
  float:right;
  margin:.35rem 0 1rem 1.35rem
}
.dem-richtext::after {
  content:"";
  display:block;
  clear:both
}
@media (max-width:680px) {
  .dem-richtext .alignleft, .dem-richtext .alignright {
    float:none;
    display:block;
    margin:1rem auto;
    max-width:100%
  }
}
/* 0.1.3: freie Guthabenaufladung mit eventbezogenen Vorschlagsbeträgen */
.dem-topup-preset-grid {
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin:.9rem 0 1rem
}
.dem-topup-preset {
  appearance:none;
  border:1px solid #d8cbc2;
  background:#fff;
  color:var(--dem-primary);
  font-weight:800;
  font-size:1rem;
  padding:.75rem 1rem;
  border-radius:4px;
  cursor:pointer
}
.dem-topup-preset:hover, .dem-topup-preset:focus {
  border-color:var(--dem-primary);
  background:var(--dem-secondary)
}
.dem-topup-free {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap
}
.dem-topup-free>label {
  flex:1 1 340px
}
.dem-topup-free-row {
  display:flex;
  align-items:center;
  gap:.55rem;
  margin-top:.35rem
}
.dem-topup-free-row input {
  min-width:0;
  flex:1
}
.dem-topup-free-row>span {
  font-weight:750
}
.dem-topup-free-row .dem-secondary-button {
  white-space:nowrap
}
.dem-voucher-summary[data-topup-summary] {
  align-items:center
}
.dem-voucher-summary[data-topup-summary] small {
  color:#6b625c
}
.dem-manage .dem-wallet-preload {
  margin:1rem 0
}
@media(max-width:620px) {
  .dem-topup-preset-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .dem-topup-preset {
    width:100%
  }
  .dem-topup-free-row {
    flex-wrap:wrap
  }
  .dem-topup-free-row input {
    flex:1 1 150px
  }
  .dem-topup-free-row .dem-secondary-button {
    flex:1 1 auto
  }
}
/* 0.1.6 – Gruppenanmeldung */
.dem-companion-count {
  margin-top:1rem;
  padding:1rem;
  border:1px solid #e7ddd6;
  border-radius:12px;
  background:#fff
}
.dem-companion-count label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  font-weight:700
}
.dem-companion-count input {
  width:90px
}
.dem-companion-count small, .dem-form-hint {
  display:block;
  margin-top:.45rem;
  color:#6b625d;
  font-size:.92rem;
  line-height:1.45
}
.dem-wallet-choice {
  margin-top:1rem;
  font-weight:700
}
/* 0.1.7 – klare Gruppen-/Guthabenhinweise und Submit-Feedback */
.dem-contact-credit-hint {
  margin:.15rem 0 1rem;
  padding:.75rem .9rem;
  border-left:4px solid var(--dem-accent);
  background:rgba(255,255,255,.62)
}
.dem-form-submit {
  display:flex;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap
}
.dem-submit-status {
  font-weight:700;
  color:#5e554f
}
.dem-submit-status::before {
  content:"";
  display:inline-block;
  width:.85rem;
  height:.85rem;
  margin-right:.5rem;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  vertical-align:-.12rem;
  animation:dem-spin .75s linear infinite
}
@keyframes dem-spin {
  to {
    transform:rotate(360deg)
  }
}
.dem-form[aria-busy="true"] {
  opacity:.92
}
.dem-form[aria-busy="true"] .dem-primary-button {
  cursor:wait
}
/* 0.1.8 – Programmbereich: eigener einspaltiger Container
   Bilder und Ausrichtungen kommen weiterhin vollständig aus dem WordPress-Editor. */
.dem-landing-simple .dem-program-section .dem-editorial-section {
  display:block;
  width:min(1180px,calc(100% - 48px));
  max-width:none;
  margin-inline:auto;
}
.dem-landing-simple .dem-program-section .dem-editorial-section>h2 {
  margin:0 0 clamp(1.6rem,3vw,2.35rem);
}
.dem-landing-simple .dem-program-section .dem-richtext {
  width:100%;
  max-width:none;
  margin:0;
}
@media(max-width:760px) {
  .dem-landing-simple .dem-program-section .dem-editorial-section {
    width:min(100% - 28px,1180px);
  }
}
/* 0.1.9 – kompaktere Anmeldung und reduzierte Erklärungstexte */
.dem-landing-simple .dem-form-card {
  padding:clamp(1rem,2vw,1.45rem);
}
.dem-landing-simple .dem-form legend {
  font-size:1.35rem;
  margin-bottom:.7rem;
}
.dem-landing-simple .dem-form label {
  font-size:.86rem;
}
.dem-landing-simple .dem-form input, .dem-landing-simple .dem-form select, .dem-landing-simple .dem-form textarea {
  padding:.6rem .7rem;
  margin-top:.22rem;
}
.dem-landing-simple .dem-form textarea {
  min-height:72px;
  line-height:1.4;
  resize:vertical;
}
.dem-landing-simple .dem-form-grid {
  gap:.65rem .8rem;
  margin-bottom:.7rem;
}
.dem-landing-simple .dem-extra-attendees, .dem-landing-simple .dem-vouchers {
  margin-top:1.2rem;
  padding-top:1rem;
}
.dem-landing-simple .dem-form-section-title {
  margin-bottom:.5rem;
}
.dem-landing-simple .dem-form-section-title h4 {
  font-size:1.28rem;
}
.dem-landing-simple .dem-primary-button, .dem-landing-simple .dem-secondary-button {
  padding:.62rem .88rem;
}
.dem-landing-simple .dem-attendee-row {
  gap:.5rem;
  margin:.55rem 0;
  padding:.65rem .7rem;
}
.dem-landing-simple .dem-companion-count {
  margin-top:.4rem;
  padding:.6rem 0;
  border:0;
  border-bottom:1px solid #eee5de;
  border-radius:0;
  background:transparent;
}
.dem-landing-simple .dem-companion-count label {
  font-size:.86rem;
}
.dem-landing-simple .dem-companion-count input {
  width:76px;
  padding:.48rem .55rem;
  margin-top:0;
}
.dem-landing-simple .dem-companion-count small, .dem-landing-simple .dem-form-hint {
  margin-top:.25rem;
  font-size:.84rem;
  line-height:1.35;
}
.dem-landing-simple .dem-form .dem-check {
  display:flex;
  align-items:flex-start;
  gap:.55rem;
}
.dem-landing-simple .dem-form .dem-check input[type="checkbox"] {
  width:auto;
  flex:0 0 auto;
  margin:.12rem 0 0;
  padding:0;
}
.dem-landing-simple .dem-wallet-choice {
  margin-top:.65rem;
}
.dem-landing-simple .dem-wallet-choice-hint {
  margin-left:1.55rem;
}
.dem-landing-simple .dem-contact-credit-hint {
  margin:.05rem 0 .65rem;
  padding:0;
  border-left:0;
  background:transparent;
  color:#5f5650;
}
.dem-landing-simple .dem-registration-info-details {
  margin:.25rem 0 .7rem;
  border:0;
}
.dem-landing-simple .dem-registration-info-details summary {
  width:max-content;
  max-width:100%;
  cursor:pointer;
  color:var(--dem-primary);
  font-size:.86rem;
  font-weight:750;
  text-decoration:underline;
  text-underline-offset:.16em;
}
.dem-landing-simple .dem-registration-info-details .dem-registration-info {
  max-width:820px;
  margin:.55rem 0 0;
  padding:.7rem .8rem;
  border-left:3px solid var(--dem-accent);
  background:#faf7f3;
  font-size:.9rem;
  line-height:1.5;
}
.dem-landing-simple .dem-topup-preset-grid {
  gap:.45rem;
  margin:.6rem 0 .7rem;
}
.dem-landing-simple .dem-topup-preset {
  padding:.58rem .78rem;
  font-size:.92rem;
}
.dem-landing-simple .dem-topup-free {
  gap:.65rem;
}
.dem-landing-simple .dem-topup-free-row {
  gap:.4rem;
  margin-top:.2rem;
}
.dem-landing-simple .dem-voucher-summary[data-topup-summary] {
  margin-top:.6rem;
  padding:.65rem .8rem;
  font-size:.92rem;
}
.dem-landing-simple .dem-form-submit {
  margin-top:1.05rem;
}
@media(max-width:620px) {
  .dem-landing-simple .dem-form-card {
    padding:1rem .9rem
  }
  .dem-landing-simple .dem-form-section-title {
    align-items:center
  }
  .dem-landing-simple .dem-form-section-title .dem-secondary-button {
    font-size:.88rem
  }
  .dem-landing-simple .dem-wallet-choice-hint {
    margin-left:0
  }
}
/* Legal pages: Impressum & Datenschutz use the same standalone event shell. */
.dem-view-legal .dem-standalone-main {
  background:#fff
}
.dem-legal-page {
  padding:clamp(3.5rem,7vw,6rem) 0 clamp(4rem,8vw,7rem)
}
.dem-legal-container {
  width:min(920px,calc(100% - 40px));
  margin-inline:auto
}
.dem-legal-page h1 {
  margin:0 0 2.1rem;
  color:var(--dem-primary);
  font-family:ui-serif, Georgia, serif;
  font-size:clamp(2.4rem,5vw,4.5rem);
  line-height:1.02;
  letter-spacing:-.025em
}
.dem-legal-content {
  font-size:1.02rem;
  line-height:1.72;
  color:#3f3936
}
.dem-legal-content h2, .dem-legal-content h3, .dem-legal-content h4 {
  color:var(--dem-primary);
  font-family:ui-serif, Georgia, serif;
  line-height:1.15;
  margin:2.2rem 0 .8rem
}
.dem-legal-content h2 {
  font-size:1.75rem
}
.dem-legal-content h3 {
  font-size:1.35rem
}
.dem-legal-content p, .dem-legal-content ul, .dem-legal-content ol {
  margin:0 0 1rem
}
.dem-legal-content a {
  color:var(--dem-primary);
  text-decoration-thickness:1px;
  text-underline-offset:2px
}
.dem-legal-content table {
  width:100%;
  border-collapse:collapse;
  margin:1.5rem 0
}
.dem-legal-content th, .dem-legal-content td {
  padding:.65rem .75rem;
  border-bottom:1px solid rgba(0,0,0,.12);
  text-align:left;
  vertical-align:top
}
@media(max-width:760px) {
  .dem-legal-container {
    width:min(100% - 28px,920px)
  }
  .dem-legal-page {
    padding-top:2.6rem
  }
  .dem-legal-page h1 {
    margin-bottom:1.5rem
  }
}
/* 0.1.58 – öffentliche Produktliste ohne Preis */
.dem-product.dem-product-without-price {
  justify-content:flex-start
}
