/* ======= PARTY 1993 – Logo-Gradient Cards ======= */

:root{
  --ink:#fff;
  --hot-pink:#ff00c8;
  --sun:#fff800;
  --neon-green:#00ff9a;
  --neon-blue:#00c3ff;
  --neon-orange:#ff7b00;
  --shadow:0 6px 18px rgba(0,0,0,.25);
}

/* ===== Hintergrund ===== */
body{
  margin:0;
  font-family:'Open Sans',sans-serif;
  color:var(--ink);
  background:linear-gradient(135deg,#ff00ff 0%,#ffea00 25%,#00ff95 60%,#00c3ff 100%);
  min-height:100vh;
}

/* ===== HEADER ===== */
.cover{
  max-width:820px;
  margin:0 auto;
  padding:24px 16px 70px;
  position:relative;
  color:#fff;
}

.logo-wrap{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-bottom:8px;
}

.logo-block{
  display:grid;
  place-items:center;
  width:calc((100% - 40px)/5);
  max-width:150px;
  aspect-ratio:1.2/1;
  font-family:'Luckiest Guy',cursive;
  font-size:clamp(40px,9vw,80px);
  color:#fff;
  border:5px solid #fff;
  border-radius:10px;
  text-shadow:2px 2px 0 rgba(0,0,0,.25);
  box-shadow:0 4px 0 #00000033, 0 6px 20px rgba(0,0,0,.25);
}
.neon1{background:linear-gradient(180deg,#ff00c8 0%,#ff9900 100%);}
.neon2{background:linear-gradient(180deg,#ffea00 0%,#ff00a6 100%);}
.neon3{background:linear-gradient(180deg,#00ff9a 0%,#00aaff 100%);}
.neon4{background:linear-gradient(180deg,#ff0080 0%,#ffea00 100%);}
.neon5{background:linear-gradient(180deg,#00ffd5 0%,#ff00c8 100%);}

/* ===== LINKSBLOCK ===== */
.left-rail{
  position:absolute;
  top:90px;
  left:18px;
  width:160px;
  max-width:42vw;
  display:flex;
  flex-direction:column;
  gap:10px;
  z-index:3;
}
.chip{
  background:#fff;
  color:#111;
  border-radius:10px;
  padding:8px 10px;
  box-shadow:var(--shadow);
}
.chip-title{
  font-family:'Luckiest Guy',cursive;
  font-size:18px;
  color:var(--hot-pink);
}
.chip-body{
  font-size:13px;
  line-height:1.2;
}

/* ===== FLIP-COUNTER (einzeilig, klar sichtbar) ===== */
.flip-counter {
  display: flex;
  gap: 8px;
  perspective: 1000px;
}

.flip-card {
  position: relative;
  width: 58px;
  height: 78px;
  font-family: 'Luckiest Guy', cursive;
  font-size: 64px;
  color: #fff;
  background: linear-gradient(180deg, #111 0%, #222 100%);
  border-radius: 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  box-shadow:
    inset 0 2px 6px rgba(255,255,255,0.15),
    inset 0 -3px 8px rgba(0,0,0,0.6),
    0 3px 10px rgba(0,0,0,0.4);
}

/* Flip-Animation */
.flip-card.animate {
  animation: flipCard .6s ease-in-out;
}

@keyframes flipCard {
  0%   { transform: rotateX(0deg); }
  40%  { transform: rotateX(-90deg); opacity: 0.6; }
  60%  { transform: rotateX(-90deg); opacity: 0.6; }
  100% { transform: rotateX(0deg); opacity: 1; }
}

/* Heller, kräftiger Zahleneffekt */
.flip-card span {
  display: block;
  transform: translateY(4px);
  text-shadow:
    0 0 10px rgba(255,255,255,0.8),
    0 2px 6px rgba(0,0,0,0.6);
}


/* ===== BADGE ===== */
.cover-badge {
  position: absolute;
  top: 70px;           /* höher – überlappt das Logo leicht */
  right: 25px;         /* etwas weiter nach innen */
  width: 160px;
  height: 160px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-family: 'Luckiest Guy', cursive;
  font-size: 17px;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #000;
  text-shadow:
    0 0 8px rgba(255,255,255,0.9),
    0 2px 4px rgba(0,0,0,0.3);
  background: linear-gradient(120deg,#00ffcc,#ffea00,#ff00c8,#00ff9a);
  background-size: 400% 400%;
  animation: lavaGradient 8s ease-in-out infinite, pulseGlow 5s ease-in-out infinite;
  box-shadow:
    0 0 25px rgba(0,255,255,0.6),
    0 0 50px rgba(255,255,0,0.5);
  z-index: 10;
  transform: rotate(-5deg);
}

/* 🔥 fließende Lavalampe-Farben */
@keyframes lavaGradient {
  0%   { background-position: 0% 50%; }
  25%  { background-position: 50% 0%; }
  50%  { background-position: 100% 50%; }
  75%  { background-position: 50% 100%; }
  100% { background-position: 0% 50%; }
}

/* 💫 sanftes „Atmen“ */
@keyframes pulseGlow {
  0%,100% { transform: rotate(-5deg) scale(1); }
  50%     { transform: rotate(-5deg) scale(1.06); }
}

/* 📱 Für Smartphones */
@media (max-width:600px) {
  .cover-badge {
    width: 120px;
    height: 120px;
    font-size: 13px;
    right: 14px;
    top: 60px;
    line-height: 1.25;
  }
}



/* ===== FOTO ===== */
.photo-bg{
  position:relative;
  z-index:1;
  text-align:center;
  margin-top:-60px;
  margin-bottom:-40px;
}
.bg-photo{
  width:min(75vw,420px);
  max-width:420px;
  opacity:0.95;
  filter:drop-shadow(0 8px 22px rgba(0,0,0,0.4));
}

/* ===== MAIN ===== */
.container{
  max-width:820px;
  margin:auto;
  padding:14px;
  position:relative;
  z-index:2;
}

/* ===== CARDS ===== */
.card{
  border-radius:16px;
  color:#fff;
  padding:22px;
  margin:18px 0;
  box-shadow:0 0 25px rgba(0,0,0,0.4);
  transition:transform .3s ease, box-shadow .3s ease;
}
.card:hover{
  transform:translateY(-3px);
  box-shadow:0 0 25px rgba(255,255,255,0.6);
}

/* Farbverläufe nach Logo */
.card-p{background:linear-gradient(180deg,#ff00c8 0%,#ff9900 100%);}
.card-a{background:linear-gradient(180deg,#ffea00 0%,#ff00a6 100%);}
.card-t{background:linear-gradient(180deg,#ff0080 0%,#ffea00 100%);}

h2 {
  font-family: 'Luckiest Guy', cursive;
  font-size: 34px;
  letter-spacing: 1px;
  margin: 0 0 18px;
  color: #fff;
  text-transform: uppercase;
  display: inline-block;
  padding: 6px 12px;
  border-radius: 10px;

  /* ⚡ Schwarze Outline + goldener Leuchteffekt */
  text-shadow:
    /* schwarze Outline */
    -2px -2px 0 #000,
     2px -2px 0 #000,
    -2px  2px 0 #000,
     2px  2px 0 #000;

  /* sanfter Hintergrundglow */
  background: radial-gradient(circle at center, rgba(255, 255, 255, 0.15) 0%, transparent 80%);
}


/* ===== FORM ===== */
.form .grid{
  display:grid;
  gap:10px;
  grid-template-columns:1fr 1fr;
}
@media (max-width:560px){.form .grid{grid-template-columns:1fr}}
label{display:flex;flex-direction:column;gap:6px;font-size:14px;}
input{
  border:2px solid #fff;
  border-radius:12px;
  padding:12px;
  font-size:17px;
  background:rgba(255,255,255,0.15);
  color:#fff;
  box-shadow:inset 0 0 6px rgba(255,255,255,0.2);
}
input::placeholder{color:#eee;}

.btn{
  margin-top:12px;
  width:100%;
  padding:14px 16px;
  border:0;
  cursor:pointer;
  border-radius:14px;
  background:linear-gradient(90deg,#fff800 0%,#00ff9a 100%);
  font:700 20px/1 'Luckiest Guy',cursive;
  color:#000;
  box-shadow:0 0 10px rgba(255,255,0,0.6),0 4px 10px rgba(0,0,0,0.4);
  transition:transform .2s;
}
.btn:hover{transform:scale(1.05);}

/* ===== TABLE ===== */
.table-scroll{overflow:auto;}
.table{
  width:100%;
  border-collapse:separate;
  border-spacing:0 8px;
}

.table th:first-child,
.table td:first-child {
  padding-left: 0;       /* 👈 Text direkt an linken Tabellenrand */
}
@media (max-width:600px){
  .table th, .table td {
    padding: 2px 4px;
  }
}
.center{text-align:center;}
.action-btn{
  font:700 14px/1 'Luckiest Guy',cursive;
  border:0;
  padding:8px 10px;
  cursor:pointer;
  color:#111;
  background:linear-gradient(90deg,#ffd1f1,var(--neon-green));
  border-radius:10px;
}
/* ===== BRAVO-STYLE ADD-PERSON BUTTON (angepasste Breite) ===== */
.btn-secondary {
  display: inline-block;
  text-align: center;
  font-family: 'Luckiest Guy', cursive;
  font-size: 22px;
  letter-spacing: 1px;
  color: #fff;
  background: linear-gradient(90deg, #ff00c8 0%, #ffea00 50%, #00ff9a 100%);
  border: 3px solid #fff;
  border-radius: 16px;
  padding: 10px 18px;
  margin-top: 12px;
  cursor: pointer;
  box-shadow:
    0 4px 0 #00000055,
    0 0 18px rgba(255, 255, 255, 0.4),
    inset 0 0 8px rgba(255,255,255,0.3);
  text-shadow: 0 0 5px rgba(0,0,0,0.5);
  transition: all .2s ease-in-out;
  position: relative;
  left: 4px;
}

/* Leuchtender Hover-Effekt */
.btn-secondary:hover {
  transform: scale(1.06) rotate(-2deg);
  box-shadow:
    0 6px 0 #00000066,
    0 0 25px rgba(255,255,255,0.8),
    inset 0 0 12px rgba(255,255,255,0.6);
  background: linear-gradient(90deg,#fff800 0%,#ff00c8 50%,#00ff9a 100%);
}

/* Kurzer Blitz beim Klick */
.btn-secondary:active {
  transform: scale(0.96) rotate(1deg);
  filter: brightness(1.2);
}


/* ===== FOOTER ===== */
.note{
  color:#fff;
  font-size:14px;
  margin:8px 0 20px;
  text-align:center;
}
.footer{
  text-align:center;
  padding:24px 10px;
  color:#fff;
  font-size:13px;
  text-shadow:0 1px 3px rgba(0,0,0,.4);
}


/* ===== GÄSTELISTE ===== */
.card-g {
  background: linear-gradient(180deg, #00ffcc 0%, #0080ff 100%);
}

/* ===== MODAL ===== */
.modal {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.6);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 100;
  backdrop-filter: blur(4px);
}
.modal.show { display: flex; }

.modal-content {
  background: linear-gradient(180deg, #00143a 0%, #0044ff 100%);
  color: #fff;
  padding: 28px;
  border-radius: 20px;
  width: 90%;
  max-width: 380px;
  box-shadow:
    0 0 30px rgba(0, 150, 255, 0.7),
    0 0 60px rgba(0, 255, 255, 0.4);
  animation: popIn .3s ease;
}

@keyframes popIn {
  0% { transform: scale(0.9); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

.modal-content h3 {
  font-family: 'Luckiest Guy', cursive;
  color: #00ffff;
  margin-top: 0;
  margin-bottom: 20px;
  text-align: center;
  text-shadow: 0 0 8px rgba(0,255,255,0.8);
  letter-spacing: 1px;
}

.modal-content label {
  display: flex;
  flex-direction: column;
  margin-bottom: 12px;
  font-weight: 600;
}

.modal-content input {
  border: 2px solid #00ffff;
  border-radius: 12px;
  padding: 10px 12px;
  background: rgba(255,255,255,0.15);
  color: #fff;
  font-size: 16px;
  box-shadow: inset 0 0 6px rgba(0,255,255,0.4);
}
.modal-content input::placeholder {
  color: rgba(255,255,255,0.7);
}

.modal-buttons {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 18px;
}

.modal .btn {
  flex: 1;
  background: linear-gradient(90deg, #00ffff, #0077ff);
  border: none;
  color: #000;
  font-family: 'Luckiest Guy', cursive;
  border-radius: 12px;
  padding: 10px 0;
  font-size: 18px;
  cursor: pointer;
  box-shadow: 0 0 15px rgba(0,255,255,0.7);
  transition: all 0.2s ease;
}
.modal .btn:hover {
  transform: scale(1.05);
}

.modal .btn-secondary {
  flex: 1;
  background: linear-gradient(90deg, #ff00c8, #ffea00);
  color: #000;
  border: none;
  font-family: 'Luckiest Guy', cursive;
  border-radius: 12px;
  padding: 10px 0;
  font-size: 18px;
  cursor: pointer;
  box-shadow: 0 0 15px rgba(255,255,255,0.6);
  transition: all 0.2s ease;
}
.modal .btn-secondary:hover {
  transform: scale(1.05);
}

/* ===== GOOGLE MAPS FULL WIDTH ===== */
.map-wrap {
  width: 100%;
  margin-top: 10px;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0,0,0,0.25);
}

.map-wrap iframe {
  width: 100%;
  height: 260px;
  border: none;
  display: block;
  border-radius: 10px;
}

/* ===== PROGRAMM CARD (rosa → dunkelblau Verlauf) ===== */
.card-programm {
  background: linear-gradient(180deg, #ff00c8 0%, #0044ff 100%);
  color: #fff;
  box-shadow: 0 0 25px rgba(0, 0, 0, 0.45);
  padding: 24px;
  border-radius: 16px;
  text-shadow: 0 0 6px rgba(255, 255, 255, 0.6);
  position: relative;
  overflow: hidden;
}

/* leichter Glanzeffekt */
.card-programm::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,0.4), transparent 60%);
  transform: rotate(25deg);
  opacity: 0.3;
  pointer-events: none;
}

.card-programm h2 {
  font-family: 'Luckiest Guy', cursive;
  font-size: 30px;
  letter-spacing: 1px;
  margin-bottom: 14px;
  color: #fff;
}

.programm-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.programm-list li {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  padding: 10px 14px;
  margin-bottom: 8px;
  font-size: 17px;
  line-height: 1.4;
  box-shadow: inset 0 0 6px rgba(255, 255, 255, 0.25);
  transition: transform .2s, box-shadow .2s;
}

.programm-list li:hover {
  transform: scale(1.03);
  box-shadow: 0 0 18px rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.2);
}

/* ===== MITMACHEN CARD (violett → neon-grün) ===== */
.card-mitmachen{
  background: linear-gradient(180deg, #3a006e 0%, #00c673 100%);
  color:#fff;
  border-radius:16px;
  padding:24px;
  box-shadow:0 0 25px rgba(0,0,0,.45);
  position:relative; overflow:hidden;
  text-shadow:0 0 6px rgba(255,255,255,.5);
}
.card-mitmachen::before{
  content:""; position:absolute; inset:-50% -50% auto auto;
  width:200%; height:200%;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.22), transparent 60%);
  transform: rotate(25deg); opacity:.25; pointer-events:none;
}

/* kurzer BRAVO-Button */
.btn-mini{
  display:inline-block;
  font-family:'Luckiest Guy',cursive;
  font-size:16px;
  color:#fff;
  background: linear-gradient(90deg,#ff00c8,#fff800,#00ff9a);
  border:2px solid #fff;
  border-radius:12px;
  padding:6px 10px;
  cursor:pointer;
  box-shadow:0 3px 0 #00000055, 0 0 12px rgba(255,255,255,.35), inset 0 0 6px rgba(255,255,255,.25);
  text-shadow:0 0 4px rgba(0,0,0,.5);
  transition: transform .15s ease, box-shadow .15s ease;
}
.btn-mini:hover{ transform:scale(1.05) rotate(-1.5deg); }

.tag-name{
  display:inline-block; padding:6px 10px; border-radius:999px;
  background: rgba(255,255,255,.2);
  box-shadow: inset 0 0 6px rgba(255,255,255,.25);
  font-weight:700;
}

.action-edit{
  margin-left:8px;
  background: linear-gradient(90deg,#00ffff,#0077ff);
  border:2px solid #fff; color:#000; border-radius:10px; padding:6px 10px;
  font-family:'Luckiest Guy',cursive; cursor:pointer;
}
.action-edit:hover{ transform:scale(1.05); }

.action-delete{
  margin-left:6px;
  background: linear-gradient(90deg,#ff4d6d,#ffa700);
  border:2px solid #fff; color:#000; border-radius:10px; padding:6px 10px;
  font-family:'Luckiest Guy',cursive; cursor:pointer;
}
.action-delete:hover{ transform:scale(1.05); }


/* === RSVP: Typ-Toggle (Kind / Erw.) === */
.person-row { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.person-row label { flex:1; margin:0; }
.type-toggle {
  display:inline-flex; border:2px solid #fff; border-radius:999px; overflow:hidden;
  box-shadow:0 2px 6px rgba(0,0,0,.25);
}
.type-toggle button{
  font:700 14px/1 'Open Sans',sans-serif; color:#111; background:#fff; border:0;
  padding:9px 12px; cursor:pointer; transition:transform .05s;
}
.type-toggle button:active{ transform:scale(0.98); }
.type-toggle .active{
  color:#000; background:linear-gradient(90deg,#fff800 0%,#00ff9a 100%);
}
.type-toggle .muted{ opacity:.75 }
.person-row input[name="type[]"]{ display:none; }


.table td:first-child {
  white-space: nowrap;
}
.table td:first-child::first-letter {
  margin-left: .2em;
}

/* === Gäste-Icons (Mickey & Dino) === */
.guest-icon {
  width: 28px;
  height: 28px;
  vertical-align: middle;
  margin-right: 8px;
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(255, 255, 255, 0.4);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.guest-icon:hover {
  transform: scale(1.15);
  box-shadow: 0 0 10px #fff;
}

/* Optionale Farbglows für Spaß 😄 */
.guest-icon[src*="mickey"] {
  filter: drop-shadow(0 0 6px #ff66cc);
}

.guest-icon[src*="dino"] {
  filter: drop-shadow(0 0 6px #00ffff);
}

.icon-kind {
  -webkit-mask: url("images/mickey-mouse-face.svg") no-repeat center / contain;
  mask: url("images/mickey-mouse-face.svg") no-repeat center / contain;
  background: #ff66cc;
  width: 26px; height: 26px;
  display: inline-block;
}

/* ===== CONFETTI MODAL ===== */
#celebrateModal {
  position: fixed;
  inset: 0;
  display: none;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  z-index: 9999;
  transition: background 1s ease;
}

#celebrateModal.show {
  display: flex;
}

/* 🌋 Dynamischer Neon-Lava-Hintergrund */
#celebrateModal::before,
#celebrateModal::after {
  content: "";
  position: absolute;
  width: 250vw;
  height: 250vh;
  top: -75vh;
  left: -75vw;
  background: radial-gradient(circle at 50% 50%,
    rgba(255, 0, 200, 0.25) 0%,
    rgba(0, 255, 255, 0.18) 25%,
    rgba(255, 255, 0, 0.2) 55%,
    rgba(0, 0, 0, 0.05) 100%);
  filter: blur(120px);
  animation: lavaFlow 10s infinite alternate ease-in-out;
  mix-blend-mode: screen;
  z-index: 0;
}

#celebrateModal::after {
  background: radial-gradient(circle at 60% 40%,
    rgba(255, 100, 0, 0.3) 0%,
    rgba(125, 0, 255, 0.25) 40%,
    rgba(0, 255, 255, 0.2) 80%);
  animation-duration: 12s;
  animation-delay: 2s;
}

@keyframes lavaFlow {
  0%   { transform: scale(1) rotate(0deg) translate(0, 0); filter: blur(100px); }
  25%  { transform: scale(1.1) rotate(20deg) translate(5%, -3%); filter: blur(140px); }
  50%  { transform: scale(0.9) rotate(-15deg) translate(-5%, 4%); filter: blur(120px); }
  75%  { transform: scale(1.2) rotate(30deg) translate(3%, 2%); filter: blur(160px); }
  100% { transform: scale(1) rotate(0deg) translate(0, 0); filter: blur(100px); }
}

/* ===== Canvas Layer ===== */
#confettiCanvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

/* ===== Text Layer ===== */
.celebrate-content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: #fff;
  font-family: 'Luckiest Guy', cursive;
  text-shadow: 0 0 14px rgba(255,255,255,0.8);
  backdrop-filter: blur(3px);
}

.celebrate-content h2 {
  font-size: 42px;
  margin-bottom: 40px;
}

/* ===== Button ===== */
.celebrate-content .btn {
  font-size: 20px;
  padding: 14px 30px;
  background: linear-gradient(90deg,#ff00c8,#fff800,#00ff9a);
  color: #000;
  border-radius: 16px;
  border: none;
  cursor: pointer;
  box-shadow: 0 0 20px rgba(255,255,255,0.8);
  transition: transform .2s, box-shadow .3s;
}

.celebrate-content .btn:hover {
  transform: scale(1.08);
  box-shadow: 0 0 30px rgba(255,255,255,1);
}

/* ===== Countdown ===== */
#celebrateCounter {
  font-family: 'Luckiest Guy', cursive;
  color: #fff;
  text-shadow:
    0 0 20px #ff00c8,
    0 0 40px #ffea00,
    0 0 80px #00fff0;
  animation: pulse 0.8s infinite alternate;
}

@keyframes pulse {
  from { transform: scale(1); opacity: 0.8; }
  to   { transform: scale(1.25); opacity: 1; }
}




.person-row {
  display: flex;
  flex-direction: column; /* <-- neu, statt align-items:center */
  gap: 10px;
  margin-bottom: 18px;
}

.person-row label {
  flex: 1;
  margin: 0;
}

/* ===== EXTRAS / CHECKBOXES ===== */
.extras {
  width: 100%;
  margin-top: 6px;
  padding: 12px 16px;
  background: rgba(255,255,255,0.12);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* jede Zeile: Checkbox + Text nebeneinander */
.checkbox-line {
  display: grid;
  grid-template-columns: 34px 1fr; /* Spalte 1 = Checkbox, Spalte 2 = Text */
  align-items: center;
  column-gap: 10px;
  font-size: 18px;
  line-height: 1.3;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0,0,0,0.4);
  cursor: pointer;
  user-select: none;
}

/* 🎯 Responsive, mobil-first Checkbox mit Neonrahmen */
.checkbox-line input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;

  /* 📱 Mobil zuerst (kleiner), wächst automatisch auf größeren Screens */
  width: clamp(18px, 4vw, 26px);
  height: clamp(18px, 4vw, 26px);

  border: 2px solid #fff;
  border-radius: 6px;
  background: rgba(255,255,255,0.12);
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow:
    inset 0 0 4px rgba(255,255,255,0.4),
    0 0 6px rgba(0,0,0,0.3);
  justify-self: center;
  flex-shrink: 0;
}

/* 💡 Hover (nur Desktop – kein Jumping auf Touch) */
@media (hover: hover) {
  .checkbox-line input[type="checkbox"]:hover {
    transform: scale(1.08);
    box-shadow: 0 0 8px rgba(255,255,255,0.9);
  }
}

/* ✅ Aktiviert – mit Neonverlauf */
.checkbox-line input[type="checkbox"]:checked {
  background: linear-gradient(135deg, #ff00c8, #fff800, #00ff9a);
  border-color: #fff;
  box-shadow:
    0 0 10px rgba(255,255,255,0.9),
    0 0 18px rgba(255,255,255,0.7);
}


.activity-icon {
  width: 26px;
  height: 26px;
  vertical-align: middle;
  margin: 0 3px;
  filter: drop-shadow(0 0 4px rgba(255,255,255,0.4));
  transition: transform 0.2s ease;
}
.activity-icon:hover {
  transform: scale(1.2);
}
.table th.center,
.table td.center {
  text-align: center;
}


/* ===== HELFERNAME-Button (leuchtend) ===== */
/* ===== HELFERNAME-BUTTON – Dauerhaft leuchtend pink→orange ===== */
.neon-name-btn {
  font-family: 'Luckiest Guy', cursive;
  font-size: 17px;
  letter-spacing: 0.5px;
  color: #000;
  background: linear-gradient(100deg, #ff00c8 0%, #ff7b00 100%);
  border: 2px solid #fff;
  border-radius: 14px;
  padding: 8px 16px;
  cursor: pointer;
  transform: rotate(-2deg);
  box-shadow:
    0 0 15px rgba(255, 100, 200, 0.8),
    0 0 30px rgba(255, 150, 0, 0.6),
    inset 0 0 10px rgba(255, 255, 255, 0.4);
  text-shadow: 0 0 5px rgba(255, 255, 255, 0.6);
  transition: transform 0.25s ease, box-shadow 0.4s ease;
  animation: neonPulse 2.8s infinite ease-in-out;
}

/* sanftes Leuchten (dauerhaft) */
@keyframes neonPulse {
  0% {
    box-shadow:
      0 0 15px rgba(255, 100, 200, 0.8),
      0 0 30px rgba(255, 150, 0, 0.6),
      inset 0 0 10px rgba(255, 255, 255, 0.4);
    filter: brightness(1);
  }
  50% {
    box-shadow:
      0 0 30px rgba(255, 100, 200, 1),
      0 0 50px rgba(255, 150, 0, 0.9),
      inset 0 0 15px rgba(255, 255, 255, 0.7);
    filter: brightness(1.2);
  }
  100% {
    box-shadow:
      0 0 15px rgba(255, 100, 200, 0.8),
      0 0 30px rgba(255, 150, 0, 0.6),
      inset 0 0 10px rgba(255, 255, 255, 0.4);
    filter: brightness(1);
  }
}

/* für Touch-Geräte (soll gleich bleiben) */
.neon-name-btn:active {
  transform: scale(0.96) rotate(-2deg);
  filter: brightness(1.3);
}

/* ===== Gäste-Button mit Icon (statt extra Spalte) ===== */
.guest-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Luckiest Guy', cursive;
  font-size: 18px;
  color: #111;
  background: linear-gradient(100deg, #00ffcc 0%, #0077ff 100%);
  border: 2px solid #fff;
  border-radius: 14px;
  padding: 6px 12px;
  cursor: pointer;
  box-shadow:
    0 0 10px rgba(0,255,255,0.6),
    0 0 25px rgba(0,150,255,0.4),
    inset 0 0 6px rgba(255,255,255,0.3);
  text-shadow: 0 0 5px rgba(255,255,255,0.6);
  transition: transform 0.2s ease, box-shadow 0.3s ease;
}
.guest-btn:hover {
  transform: scale(1.05);
  box-shadow:
    0 0 25px rgba(0,255,255,0.9),
    0 0 40px rgba(0,255,255,0.6),
    inset 0 0 10px rgba(255,255,255,0.6);
}

/* Icon etwas kleiner */
.guest-icon-small {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  box-shadow: 0 0 5px rgba(255,255,255,0.4);
  filter: drop-shadow(0 0 4px rgba(0,255,255,0.6));
  transition: transform 0.2s ease;
}
.guest-btn:hover .guest-icon-small {
  transform: scale(1.15);
}

/* ===== MODAL CHECKLIST (Minimal & Zentriert) ===== */
.checklist {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 14px;
  border: none;
  padding: 0;
  background: none;
}

/* jede Zeile: Checkbox + Text inline */
.checkitem {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0,0,0,0.4);
  cursor: pointer;
  user-select: none;
}

/* minimalistische Checkbox */
.checkitem-box {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border: 2px solid #fff;
  border-radius: 5px;
  background: rgba(255,255,255,0.1);
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow: inset 0 0 3px rgba(255,255,255,0.3);
  flex-shrink: 0;
}

/* hover-effekt nur auf Desktop */
@media (hover:hover) {
  .checkitem-box:hover {
    transform: scale(1.08);
    box-shadow: 0 0 8px rgba(255,255,255,0.9);
  }
}

/* aktivierter Zustand mit Neon-Glow */
.checkitem-box:checked {
  background: linear-gradient(135deg, #ff00c8, #fff800, #00ff9a);
  border-color: #fff;
  box-shadow: 0 0 10px rgba(255,255,255,0.9);
}

/* Optional – weißes Häkchen beim Aktivieren */
.checkitem-box:checked::after {
  content: "✓";
  display: block;
  text-align: center;
  color: #000;
  font-weight: 900;
  font-size: 14px;
  line-height: 20px;
}

/* ======================================================
   💖 BRAVO STYLE CARD: Hotel & Parken
====================================================== */
.card-infos.bravo-style {
  background: linear-gradient(145deg, #00fff0 0%, #9b00ff 80%);
  color: #fff;
  text-shadow: 0 0 6px rgba(0,0,0,0.5);
  border: 2px solid #fff;
  box-shadow: 0 0 25px rgba(255,0,200,0.4);
  border-radius: 18px;
  padding: 25px;
  font-size: 1.05rem;
}

.bravo-title {
  font-family: 'Luckiest Guy', cursive;
  text-transform: uppercase;
  color: #fff;
  font-size: 1.8rem;
  letter-spacing: 1px;
  margin-bottom: 0.8em;

  display: flex;
  align-items: center;
  gap: 10px;
}

.bravo-icon {
  width: 36px;
  filter: drop-shadow(0 0 6px #ffea00);
}

.bravo-sub {
  font-family: 'Luckiest Guy', cursive;
  font-size: 1.3rem;
  margin-top: 1.5em;
  color: #ffea00;
  letter-spacing: 1px;
  display: flex;
  align-items: center;
  gap: 6px;
  text-shadow: 2px 2px 0 #ff00c8;
}

.bravo-sub img {
  width: 22px;
  height: 22px;
}

.info-image {
  margin: 10px 0 15px;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 0 15px rgba(255,255,255,0.4);
}

.info-image img {
  width: 100%;
  aspect-ratio: 21 / 9;
  object-fit: cover;
  display: block;
}

.bravo-label {
  color: #ffea00;
  font-weight: bold;
}

.booking-link a {
  background: #ff00c8;
  color: #fff;
  text-decoration: none;
  padding: 8px 14px;
  border-radius: 10px;
  font-weight: bold;
  box-shadow: 0 0 10px rgba(255,0,200,0.5);
  display: inline-block;
  margin-top: 5px;
}
.booking-link a:hover {
  background: #ffea00;
  color: #000;
  box-shadow: 0 0 14px #ffea00;
}


/* ======================================================
   🎁 GESCHENKE-ABSCHNITT (Bravo Style)
====================================================== */
.card-infos .bravo-sub img[alt*="Geschenke"] {
  filter: drop-shadow(0 0 6px #ff00c8);
}

.card-infos p {
  line-height: 1.5;
  color: #fff;
  text-shadow: 0 0 6px rgba(0,0,0,0.6);
}

.card-infos p strong {
  color: #ffea00;
  text-shadow: 1px 1px 0 #ff00c8;
}



.view-counter {
  margin-top: 8px;
  font-size: 16px;
  font-weight: 700;
  color: #ffea00;
  text-shadow: 0 0 6px #ff00c8, 0 0 10px #fff;
  animation: blinkView 2s infinite alternate;
}
@keyframes blinkView {
  0% { opacity: 0.8; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.05); }
}


/* =======================================================
   🎆 BRAVO-STYLE PROGRAMM – Dauerhaftes Aufleuchten
======================================================= */

/* Grundzustand für alle Programmzeilen */
.programm-list li {
  position: relative;
  animation: bravoGlow 8s infinite ease-in-out;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 0 8px rgba(255,255,255,0.3);
  transition: transform .3s, box-shadow .3s;
}

/* =======================================================
   🎆 BRAVO-STYLE PROGRAMM – Dauerhaftes Aufleuchten
======================================================= */

/* Grundzustand für alle Programmzeilen */
.programm-list li {
  position: relative;
  animation: bravoGlow 8s infinite ease-in-out;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 0 8px rgba(255,255,255,0.3);
  transition: transform .3s, box-shadow .3s;
}

/* Neon-Farben nacheinander durchlaufen lassen */
@keyframes bravoGlow {
  0%   { box-shadow: 0 0 8px #ff00c8, inset 0 0 10px rgba(255,255,255,0.3); transform: scale(1.02); }
  20%  { box-shadow: 0 0 10px #ffea00, inset 0 0 12px rgba(255,255,255,0.3); transform: scale(1.04); }
  40%  { box-shadow: 0 0 10px #00fff0, inset 0 0 14px rgba(255,255,255,0.3); transform: scale(1.05); }
  60%  { box-shadow: 0 0 10px #00ff9a, inset 0 0 12px rgba(255,255,255,0.3); transform: scale(1.03); }
  80%  { box-shadow: 0 0 8px #ff7b00, inset 0 0 10px rgba(255,255,255,0.3); transform: scale(1.02); }
  100% { box-shadow: 0 0 8px #ff00c8, inset 0 0 10px rgba(255,255,255,0.3); transform: scale(1.02); }
}

/* jede Zeile startet leicht zeitversetzt */
.programm-list li:nth-child(1) { animation-delay: 0s; }
.programm-list li:nth-child(2) { animation-delay: 1s; }
.programm-list li:nth-child(3) { animation-delay: 2s; }
.programm-list li:nth-child(4) { animation-delay: 3s; }
.programm-list li:nth-child(5) { animation-delay: 4s; }
.programm-list li:nth-child(6) { animation-delay: 5s; }

/* Hover: extra hell und groß */
.programm-list li:hover {
  transform: scale(1.08);
  box-shadow: 0 0 20px #fff, 0 0 40px #ff00c8;
}

/* jede Zeile startet leicht zeitversetzt */
.programm-list li:nth-child(1) { animation-delay: 0s; }
.programm-list li:nth-child(2) { animation-delay: 1s; }
.programm-list li:nth-child(3) { animation-delay: 2s; }
.programm-list li:nth-child(4) { animation-delay: 3s; }
.programm-list li:nth-child(5) { animation-delay: 4s; }
.programm-list li:nth-child(6) { animation-delay: 5s; }

/* Hover: extra hell und groß */
.programm-list li:hover {
  transform: scale(1.08);
  box-shadow: 0 0 20px #fff, 0 0 40px #ff00c8;
}
