/* === Strand-Service === */
.beach-hero{padding:18px 16px 8px}
.beach-hero h1{font-size:1.4rem;font-weight:700;margin-bottom:6px;color:var(--primary)}
.beach-hero p{font-size:.95rem;color:#555;line-height:1.4}

/* Schritt-Nummern */
.beach-step-title{display:flex;align-items:center;gap:10px}
.step-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;
  background:var(--primary);color:#fff;
  font-size:.85rem;font-weight:700;flex-shrink:0;
}

/* Zonen-Tiles (statt Karte) */
.zone-tiles{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  padding:0 16px 6px;
}
.zone-tile{
  display:flex;align-items:center;gap:10px;
  background:#fafaf9;border:1.5px solid var(--border);border-radius:12px;
  padding:12px 12px;cursor:pointer;font-family:inherit;
  text-align:left;transition:all .12s ease;
  font-size:.9rem;color:#333;
}
.zone-tile:hover{border-color:#aaa}
.zone-tile.selected{
  border-color:var(--primary);background:rgba(15,120,132,.08);
  font-weight:600;
  box-shadow:0 2px 8px rgba(15,120,132,.12);
}
.zone-tile-icon{font-size:1.4rem;line-height:1;flex-shrink:0}
.zone-tile-label{flex:1}

.lounger-row{display:flex;flex-direction:column;gap:6px;padding:0 16px 14px;font-size:.85rem;color:#555}
.lounger-row input{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:1rem;font-family:inherit}

.find-card{margin:14px 16px;padding:14px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}
.find-card .section-sub{font-weight:700;margin-bottom:6px}
.find-card .hint{font-size:.85rem;color:#666;margin-bottom:10px}

.selfie-toggle{margin-top:10px;padding:10px 0;border-top:1px solid var(--border)}
.selfie-hint{background:#f4f8e9;border-left:3px solid #8bb955;padding:8px 10px;border-radius:6px;font-size:.78rem;color:#3e5526;margin:6px 0}
.selfie-row{display:flex;gap:10px;align-items:center;margin-top:8px}
.selfie-preview{position:relative;flex:1}
.selfie-preview img{max-width:100px;border-radius:10px;border:1px solid var(--border);display:block}
.selfie-remove{
  position:absolute;top:-6px;right:calc(100% - 100px - 14px);
  background:#e74c3c;color:#fff;border:none;border-radius:50%;
  width:24px;height:24px;cursor:pointer;font-size:1rem;line-height:1;
}

/* Confirmed-Karte */
.confirmed-card{background:#fff;margin:32px 16px;padding:24px 18px;border-radius:18px;box-shadow:var(--shadow)}
.confirmed-card h2{font-size:1.25rem;font-weight:700;color:var(--primary);margin-bottom:8px}
.confirmed-card p{font-size:.92rem;color:#555;line-height:1.45;margin-bottom:14px}
.pulse-color-display{
  display:flex;align-items:center;gap:10px;background:#f7f5f0;
  padding:10px 14px;border-radius:12px;margin:14px 0;font-weight:600;
}
.pulse-swatch{width:28px;height:28px;border-radius:50%;box-shadow:0 0 0 3px rgba(255,255,255,.7),0 2px 8px rgba(0,0,0,.15)}

/* Pulse-Vollbild-Overlay */
.pulse-overlay{
  position:fixed;inset:0;z-index:999;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
}
.pulse-overlay.hidden{display:none}
.pulse-bg{
  position:absolute;inset:0;
  animation:pulseBg 1.1s ease-in-out infinite alternate;
}
@keyframes pulseBg{
  0%{opacity:.55}
  100%{opacity:1}
}
.pulse-text{
  position:relative;z-index:2;text-align:center;color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
  pointer-events:none;
}
.pulse-color-name{font-size:2.2rem;font-weight:800;margin-bottom:8px;letter-spacing:1px}
.pulse-text small{font-size:.85rem;opacity:.85}
