/* ============================================================
   MEINE REISEN v4 — Premium Travel Blog
   ============================================================ */

/* ── 1. DESIGN TOKENS ───────────────────────────────────── */
:root {
  color-scheme: dark;
  --bg:       #080c18;
  --bg2:      #0d1220;
  --bg3:      #111827;
  --bg4:      #161e30;
  --glass:    rgba(255,255,255,0.05);
  --glass2:   rgba(255,255,255,0.09);
  --glass3:   rgba(255,255,255,0.13);
  --accent:   #e84c6b;
  --accent-h: #ff6080;
  --accent-d: #c43458;
  --gold:     #f5c842;
  --teal:     #2dd4bf;
  --green:    #22c55e;
  --border:   rgba(255,255,255,0.11);
  --border2:  rgba(255,255,255,0.18);
  --glow:     rgba(232,76,107,0.32);
  --text:     #f8faff;        /* was #f0f4ff — brighter white */
  --muted:    #94a3b8;        /* was #7a8ba8 — more readable slate */
  --muted2:   #64748b;        /* was #4e5f78 — lifted */
  --r-sm:     8px;
  --r-md:     16px;
  --r-lg:     24px;
  --r-xl:     32px;
  --ease:     cubic-bezier(0.4,0,0.2,1);
  --ease-out: cubic-bezier(0.0,0,0.2,1);
  --t:        0.3s;
}

/* ── 2. RESET ────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;line-height:1.65}
img{display:block;width:100%;object-fit:cover}
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font-family:inherit}
button,a{touch-action:manipulation}
input,textarea,select{min-width:0}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px}

/* ── 3. LOADING SCREEN ───────────────────────────────────── */
.loading-screen{position:fixed;inset:0;background:var(--bg);z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;transition:opacity .8s var(--ease),visibility .8s var(--ease)}
.loading-screen.done{opacity:0;visibility:hidden;pointer-events:none}
.loading-logo{display:flex;align-items:center;gap:10px;font-size:2rem;font-weight:700}
.loading-icon{color:var(--accent);font-size:2.5rem;animation:spin 3s linear infinite}
.loading-bar{width:200px;height:3px;background:var(--glass2);border-radius:4px;overflow:hidden}
.loading-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-h));border-radius:4px;width:0%;transition:width .05s linear}
.loading-hint{font-size:.8rem;color:var(--muted);letter-spacing:.1em}

/* ── 4. UTILITIES ────────────────────────────────────────── */
.accent{color:var(--accent)}
.section{padding:100px 0}
.section-container{max-width:1200px;margin:0 auto;padding:0 32px}
.section-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.28em;color:var(--accent);text-transform:uppercase;margin-bottom:12px}
.section-title{font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1.15;margin-bottom:40px}
.fade-in{opacity:0;transform:translateY(36px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.fade-in.visible{opacity:1;transform:translateY(0)}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes scaleIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* ── 5. BUTTONS ──────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;border-radius:50px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all var(--t) var(--ease)}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 0 30px var(--glow)}
.btn-primary:hover{background:var(--accent-h);transform:translateY(-2px);box-shadow:0 8px 40px var(--glow)}
.btn-ghost{background:transparent;color:var(--text);border:1.5px solid var(--border2)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}
.btn-sm{padding:8px 16px;border-radius:var(--r-sm);background:var(--glass2);border:1px solid var(--border);color:var(--text);font-size:.82rem;font-weight:600;transition:var(--t)}
.btn-sm:hover{background:var(--accent);border-color:var(--accent)}

/* ── 6. NAV ──────────────────────────────────────────────── */
.navbar{position:fixed;top:0;left:0;right:0;z-index:900;padding:20px 0;transition:all var(--t)}
.navbar.scrolled{background:rgba(8,12,24,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:12px 0;border-bottom:1px solid var(--border)}
.nav-container{max-width:1200px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:8px;font-size:1.3rem;font-weight:700;flex-shrink:0;margin-right:24px}
.logo-icon{color:var(--accent);font-size:1.5rem;animation:spin 8s linear infinite}
.nav-links{display:flex;gap:36px;margin:0 16px}
.nav-link{font-size:.88rem;font-weight:500;color:var(--muted);transition:color var(--t);position:relative;white-space:nowrap}
.nav-link::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--accent);border-radius:2px;transition:width var(--t)}
.nav-link:hover,.nav-link.active{color:var(--text)}
.nav-link:hover::after,.nav-link.active::after{width:100%}
.nav-actions{display:flex;align-items:center;gap:8px}
.hamburger{display:none;flex-direction:column;gap:5px;padding:4px;z-index:10}
.hamburger span{display:block;width:24px;height:2px;background:var(--text);border-radius:2px;transition:var(--t)}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── 7. HERO ──────────────────────────────────────────────── */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0 32px;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-img{width:100%;height:100%;object-fit:cover;object-position:center 30%;animation:heroZoom 18s ease-out forwards}
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,12,24,.9) 0%,rgba(8,12,24,.4) 55%,rgba(8,12,24,.75) 100%)}
.hero-particles{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-content{position:relative;z-index:2;max-width:700px;margin:0 auto;width:100%;padding-top:80px}
.hero-eyebrow{font-size:.78rem;letter-spacing:.3em;color:var(--accent);text-transform:uppercase;font-weight:600;margin-bottom:20px;opacity:0;animation:fadeUp .8s .3s forwards}
.hero-title{font-size:clamp(4rem,10vw,7.5rem);font-weight:900;line-height:.95;letter-spacing:-.02em;text-transform:uppercase;margin-bottom:28px;opacity:0;animation:fadeUp .8s .5s forwards}
.title-line{display:block}
.title-line.outline{-webkit-text-stroke:2px var(--accent);color:transparent;text-shadow:0 0 80px rgba(232,76,107,.35)}
.hero-sub{font-size:1.1rem;color:rgba(240,244,255,.75);max-width:520px;margin-bottom:44px;opacity:0;animation:fadeUp .8s .7s forwards;min-height:1.5em}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:fadeUp .8s .9s forwards}
.hero-stats{position:absolute;bottom:44px;left:50%;transform:translateX(-50%);z-index:2;display:flex;align-items:center;background:var(--glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border2);border-radius:var(--r-xl);padding:22px 40px;white-space:nowrap;opacity:0;animation:fadeUp .8s 1.1s forwards;gap:0}
.stat-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 28px}
.stat-num{font-size:2rem;font-weight:800;line-height:1}
.stat-label{font-size:.68rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.stat-divider{width:1px;height:44px;background:var(--border)}
.hero-scroll-hint{position:absolute;right:48px;bottom:44px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:.68rem;letter-spacing:.22em;color:var(--muted);text-transform:uppercase;writing-mode:vertical-rl}
.scroll-line{width:1px;height:56px;background:linear-gradient(to bottom,var(--accent),transparent);animation:scrollPulse 2.2s infinite}
@keyframes scrollPulse{0%,100%{opacity:1}50%{opacity:.3}}

/* ── 8. DESTINATIONS ──────────────────────────────────────── */
.destinations{background:var(--bg2)}
.section-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:48px;flex-wrap:wrap;gap:20px}
.section-header .section-title{margin-bottom:0}
.dest-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.filter-btn{padding:7px 18px;border-radius:50px;border:1.5px solid var(--border);background:transparent;color:var(--muted);font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--t);font-family:inherit}
.filter-btn:hover{border-color:var(--border2);color:var(--text)}
.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 20px var(--glow)}
.slider-controls{display:flex;align-items:center;gap:12px}
.slider-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--border);background:transparent;color:var(--text);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--t)}
.slider-btn:hover{border-color:var(--accent);background:var(--accent);transform:scale(1.1)}
.slider-counter{font-size:.82rem;color:var(--muted);font-weight:500;min-width:52px;text-align:center}
.dest-slider-wrapper{overflow:hidden;border-radius:var(--r-lg)}
.dest-slider{display:flex;gap:24px;transition:transform .65s var(--ease);will-change:transform}

/* Cards */
.dest-card{flex:0 0 420px;background:var(--bg3);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border);display:flex;flex-direction:column;transition:all var(--t);position:relative}
.dest-card:hover{transform:translateY(-8px);border-color:rgba(232,76,107,.35);box-shadow:0 24px 60px rgba(0,0,0,.5)}
.dest-img-wrap{position:relative;height:260px;overflow:hidden;flex-shrink:0}
.dest-img{height:100%;width:100%;transition:transform .65s ease;object-fit:cover}
.dest-card:hover .dest-img{transform:scale(1.07)}
.dest-img-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(17,24,39,.9) 0%,transparent 55%)}
.dest-difficulty{position:absolute;top:16px;right:16px;display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;background:rgba(8,12,24,.75);backdrop-filter:blur(8px);border:1px solid var(--border);padding:5px 12px;border-radius:50px;color:var(--text)}
.diff-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.diff-easy{background:#22c55e;box-shadow:0 0 8px rgba(34,197,94,.6)}
.diff-mid{background:#f59e0b;box-shadow:0 0 8px rgba(245,158,11,.6)}
.diff-hard{background:var(--accent);box-shadow:0 0 8px var(--glow)}
.dest-card-actions{position:absolute;top:16px;left:16px;display:flex;gap:8px;opacity:0;transition:opacity var(--t)}
.dest-card:hover .dest-card-actions{opacity:1}
.dest-action-btn{width:32px;height:32px;border-radius:50%;background:rgba(8,12,24,.8);border:1px solid var(--border);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--t);font-size:.75rem}
.dest-action-btn:hover{background:var(--accent);border-color:var(--accent)}
.dest-action-btn.delete:hover{background:#ef4444;border-color:#ef4444}
.dest-info{padding:28px;display:flex;flex-direction:column;flex:1}
.dest-badge{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:rgba(232,76,107,.1);border:1px solid rgba(232,76,107,.22);padding:4px 12px;border-radius:50px;margin-bottom:12px;width:fit-content}
.dest-badge.planned{color:#f5c842;background:rgba(245,200,66,.1);border:1px solid rgba(245,200,66,.22)}
.dest-badge.locked{color:#ef4444;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.25)}
.dest-name{font-size:1.3rem;font-weight:800;margin-bottom:4px}
.dest-country{font-size:.82rem;color:var(--muted);margin-bottom:14px}
.dest-quick-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.dest-quick-stats span{font-size:.73rem;background:var(--glass2);border:1px solid var(--border);padding:4px 10px;border-radius:var(--r-sm);color:var(--muted)}
.dest-desc{font-size:.88rem;color:var(--muted);line-height:1.75;margin-bottom:20px;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dest-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto}
.dest-stars{display:flex;gap:2px;color:var(--gold);font-size:.9rem}
.btn-detail{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--accent);color:#fff;border-radius:var(--r-md);font-size:.83rem;font-weight:700;transition:all var(--t);box-shadow:0 0 18px var(--glow)}
.btn-detail:hover{background:var(--accent-h);transform:translateX(4px)}

/* Empty State */
.empty-state{display:flex;flex-direction:column;align-items:center;gap:20px;padding:80px 20px;text-align:center}
.empty-img{width:220px;height:220px;object-fit:contain;opacity:.7}
.empty-state h3{font-size:1.5rem;font-weight:700}
.empty-state p{color:var(--muted);max-width:400px}

/* ── 9. MAP ───────────────────────────────────────────────── */
.worldmap{background:var(--bg);padding:0 0 80px}
.map-section-header{padding:80px 0 32px}
.map-section-header .section-title{margin-bottom:8px}
.map-subtitle{color:var(--muted);font-size:.95rem;margin-top:-8px}
.map-legend-bar{padding:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:rgba(13,18,32,.6);backdrop-filter:blur(10px)}
.map-legend-inner{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.legend-item{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--muted)}
.legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.legend-dot.visited{background:var(--accent);box-shadow:0 0 8px var(--glow)}
.legend-dot.planned{background:var(--gold);box-shadow:0 0 8px rgba(245,200,66,.5)}
.legend-flights{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--muted)}
.legend-line{display:inline-block;width:40px;height:2px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.3) 0,rgba(255,255,255,.3) 6px,transparent 6px,transparent 12px)}
.map-stats-bar{display:flex;gap:20px;margin-left:auto}
.map-stats-bar span{font-size:.82rem;color:var(--muted)}
.map-stats-bar strong{color:var(--text)}
#leaflet-map{height:560px;width:100%;background:var(--bg)}
.leaflet-container{background:#0a0e1a!important;font-family:'Outfit',sans-serif!important}
.leaflet-tile-pane{filter:brightness(.88) saturate(1.1)}
.leaflet-control-zoom{border:1px solid var(--border)!important;border-radius:var(--r-md)!important;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.5)!important}
.leaflet-control-zoom a{background:rgba(13,18,32,.9)!important;color:var(--text)!important;border-bottom:1px solid var(--border)!important;width:36px!important;height:36px!important;line-height:36px!important;font-size:1.1rem!important;transition:background var(--t)!important}
.leaflet-control-zoom a:hover{background:var(--accent)!important;color:#fff!important}
.leaflet-control-attribution{background:rgba(8,12,24,.7)!important;color:var(--muted)!important;font-size:.65rem!important}
.leaflet-control-attribution a{color:var(--accent)!important}
.leaflet-popup-content-wrapper{background:rgba(13,20,38,0.72)!important;border:1px solid rgba(255,255,255,0.08)!important;border-radius:var(--r-md)!important;box-shadow:0 8px 40px rgba(0,0,0,.7)!important;backdrop-filter:blur(24px)!important;-webkit-backdrop-filter:blur(24px)!important;padding:0!important}
.leaflet-popup-content{margin:0!important;width:250px!important}
.leaflet-popup-tip-container{display:none}
.leaflet-popup-close-button{color:var(--muted)!important;font-size:1.1rem!important;top:10px!important;right:12px!important}
.map-popup{padding:20px}
.map-popup-img{width:100%;height:130px;object-fit:cover;border-radius:var(--r-sm);margin-bottom:14px}
.map-popup-badge{font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:rgba(232,76,107,.12);border:1px solid rgba(232,76,107,.22);padding:3px 10px;border-radius:50px;display:inline-block;margin-bottom:8px}
.map-popup-badge.planned{color:#f5c842;background:rgba(245,200,66,.12);border:1px solid rgba(245,200,66,.22)}
.map-popup h4{font-size:1rem;font-weight:700;margin-bottom:4px}
.map-popup p{font-size:.78rem;color:var(--muted);margin-bottom:12px}
.map-popup-btn{display:block;width:100%;padding:9px;background:var(--accent);color:#fff;text-align:center;border-radius:var(--r-sm);font-size:.82rem;font-weight:700;cursor:pointer;border:none;font-family:inherit;transition:background var(--t)}
.map-popup-btn:hover{background:var(--accent-h)}
@keyframes markerPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.35}}

/* ── 10. GALLERY ──────────────────────────────────────────── */
.gallery{background:var(--bg2)}
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 240px;
  grid-auto-flow: dense;
  gap: 16px;
  max-height: 752px; /* 3 rows of 240px + 2 gaps of 16px */
  overflow: hidden;
  transition: max-height 0.5s ease;
}
.gallery-item {
  border-radius: var(--r-md);
  overflow: hidden;
  position: relative;
  cursor: pointer;
  background: var(--bg3);
  height: 100%;
  width: 100%;
}
.gallery-item.large {
  grid-column: span 2;
  grid-row: span 2;
}
.gallery-item.tall {
  grid-row: span 2;
}
.gallery-item.wide {
  grid-column: span 2;
}
.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .65s ease;
  display: block;
}
.gallery-item:hover img {
  transform: scale(1.08);
}
.gallery-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,rgba(8,12,24,.9) 0%,transparent 65%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px;
  opacity: 0;
  transition: opacity var(--t);
  z-index: 3;
}
.gallery-item:hover .gallery-overlay {
  opacity: 1;
}
.gallery-tag {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--accent);
  background: rgba(232,76,107,.18);
  padding: 3px 10px;
  border-radius: 50px;
  display: inline-block;
  margin-bottom: 6px;
  width: fit-content;
}
.gallery-overlay h4 {
  font-size: 1.05rem;
  font-weight: 700;
  margin-bottom: 10px;
}
.gallery-detail-btn {
  display: inline-block;
  font-size: .78rem;
  font-weight: 700;
  color: var(--accent);
  background: none;
  border: 1px solid rgba(232,76,107,.4);
  padding: 6px 14px;
  border-radius: var(--r-sm);
  cursor: pointer;
  font-family: inherit;
  transition: all var(--t);
}
.gallery-detail-btn:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}


/* ── 11. ABOUT ────────────────────────────────────────────── */
.about{background:var(--bg);position:relative;overflow:hidden}
.about::before{content:'';position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(232,76,107,.06) 0%,transparent 70%);top:-100px;right:-100px;pointer-events:none}
.about-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.about-desc{color:var(--muted);font-size:.97rem;margin-bottom:16px;line-height:1.85}
.about-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.tag{padding:8px 18px;border-radius:50px;border:1.5px solid var(--border);font-size:.8rem;font-weight:500;color:var(--muted);transition:all var(--t)}
.tag:hover{border-color:var(--accent);color:var(--text)}
.about-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}
.about-fact{padding:18px 18px 20px;background:var(--glass);border:1px solid var(--border);border-radius:var(--r-md);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.fact-label{display:block;font-size:.65rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.about-fact strong{display:block;font-size:1.1rem;font-weight:800;margin-bottom:8px}
.about-fact p{font-size:.84rem;line-height:1.7;color:var(--muted)}
.about-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.about-visual{display:flex;flex-direction:column;align-items:center;gap:28px}
.about-img-container{position:relative;width:360px;max-width:100%;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:1/1;flex-shrink:0}
.about-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease;border-radius:var(--r-lg)}
.about-img.active{opacity:1}
.about-img.default-about-img{object-fit:contain;filter:drop-shadow(0 20px 60px rgba(232,76,107,.15));animation:floatHiker 6s ease-in-out infinite}
.hiker-img{max-width:360px;border-radius:var(--r-lg);filter:drop-shadow(0 20px 60px rgba(232,76,107,.15));animation:floatHiker 6s ease-in-out infinite}
@keyframes floatHiker{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.about-quote{background:var(--glass);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--r-md);padding:28px 32px;max-width:380px;text-align:center}
.about-quote p{font-family:'Playfair Display',serif;font-style:italic;font-size:1rem;line-height:1.7;margin-bottom:10px}
.about-quote span{font-size:.78rem;color:var(--accent);font-weight:500}

/* ── 13. FOOTER ───────────────────────────────────────────── */
.footer{background:var(--bg);padding:22px 0 18px;border-top:1px solid var(--border)}
.footer-content{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:32px;max-width:1200px;margin:0 auto;padding:0 32px 18px}
.footer-logo{display:inline-flex;margin-bottom:8px}
.footer-brand p{color:var(--muted);font-size:.82rem;line-height:1.6}
.footer-links,.footer-actions{display:flex;flex-direction:column;gap:8px}
.footer-links a{font-size:.82rem;color:var(--muted);transition:color var(--t)}
.footer-links a:hover{color:var(--text)}
.footer-btn{font-size:.78rem;color:var(--muted);background:transparent;border:1px solid var(--border);padding:7px 12px;border-radius:var(--r-sm);text-align:left;cursor:pointer;font-family:inherit;transition:all var(--t);display:block;width:100%}
.footer-btn:hover{border-color:var(--border2);color:var(--text);background:rgba(255,255,255,.03)}
.footer-btn.danger:hover{border-color:#ef4444;color:#ef4444;background:rgba(239,68,68,.06)}
.footer-bottom{text-align:center;padding:10px 32px 0;color:var(--muted2);font-size:.76rem}

/* ── 14. BLOG MODAL ───────────────────────────────────────── */
.blog-backdrop{position:fixed;inset:0;background:rgba(4,6,14,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1000;opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}
.blog-backdrop.active{opacity:1;pointer-events:all}
.blog-modal-wrap{position:fixed;inset:0;z-index:1001;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease);transform:scale(.95) translateY(20px)}
.blog-modal-wrap.active{opacity:1;pointer-events:all;transform:scale(1) translateY(0)}
.blog-modal{width:95%;max-width:1280px;max-height:92vh;background:rgba(13,20,38,0.72);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:var(--r-xl);border:1px solid rgba(255,255,255,0.08);box-shadow:0 40px 120px rgba(0,0,0,.85);display:flex;flex-direction:column;overflow:hidden;position:relative}
.blog-progress-bar{height:3px;background:var(--bg3);flex-shrink:0}
.blog-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-h));width:0%;transition:width .1s linear}
.blog-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:rgba(13,20,38,0.45);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;flex-shrink:0}
.blog-topbar-left{display:flex;align-items:center;gap:12px;min-width:0;overflow:hidden}
.blog-topbar-eyebrow{font-size:.65rem;font-weight:700;letter-spacing:.18em;color:var(--accent);text-transform:uppercase;white-space:nowrap;background:rgba(232,76,107,.12);border:1px solid rgba(232,76,107,.22);padding:3px 10px;border-radius:50px}
.blog-topbar-title{font-size:.88rem;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.blog-topbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.blog-action-btn{width:36px;height:36px;border-radius:var(--r-sm);background:var(--glass2);border:1px solid var(--border);color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--t)}
.blog-action-btn:hover{background:rgba(232,76,107,.15);border-color:var(--accent);color:var(--accent)}
.blog-close{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--r-sm);background:var(--glass2);border:1px solid var(--border);color:var(--muted);font-size:.8rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--t)}
.blog-close:hover{background:rgba(232,76,107,.15);border-color:var(--accent);color:var(--accent)}
.blog-close svg{transition:transform var(--t)}
.blog-close:hover svg{transform:rotate(90deg)}
.blog-scroll{overflow-y:auto;flex:1;scroll-behavior:smooth}
.blog-scroll::-webkit-scrollbar{width:4px}
.blog-scroll::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px}
.blog-hero{position:relative;height:400px;overflow:hidden;flex-shrink:0}
.blog-hero-img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.blog-hero:hover .blog-hero-img{transform:scale(1.03)}
.blog-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,18,32,1) 0%,rgba(13,18,32,.15) 55%,transparent 100%)}
.blog-hero-meta{position:absolute;bottom:32px;left:40px;right:40px}
.blog-hero-badge{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);background:rgba(232,76,107,.18);border:1px solid rgba(232,76,107,.3);padding:5px 14px;border-radius:50px;margin-bottom:12px}
.blog-hero-title{font-size:2.5rem;font-weight:900;line-height:1.05;margin-bottom:8px;text-shadow:0 2px 20px rgba(0,0,0,.5)}
.blog-hero-country{font-size:.95rem;color:rgba(240,244,255,.72)}
.blog-stats-band{display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg);border-bottom:1px solid var(--border)}
.blog-stat{padding:18px 12px;text-align:center;border-right:1px solid var(--border)}
.blog-stat:last-child{border-right:none}
.blog-stat-num{font-size:1.1rem;font-weight:800;color:var(--accent);display:block;margin-bottom:4px}
.blog-stat-label{font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.blog-rating-row{display:flex;align-items:center;gap:16px;padding:14px 40px;border-bottom:1px solid var(--border);background:var(--glass)}
.blog-stars{display:flex;gap:4px;font-size:1.1rem;color:var(--gold)}
.blog-diff-badge{font-size:.73rem;font-weight:700;padding:4px 14px;border-radius:50px;border:1.5px solid}
.blog-read-time{font-size:.78rem;color:var(--muted);margin-left:auto}
.blog-content{padding:12px 0 40px;max-width:100%;margin:0;width:100%}
.blog-content p{font-size:1rem;color:rgba(240,244,255,.9);line-height:1.9;margin-bottom:1.5em}
.blog-content h2{font-size:1.45rem;font-weight:800;color:var(--text);margin:2.4em 0 .8em;padding-bottom:.5em;border-bottom:1px solid var(--border)}
.blog-quote{margin:2.2em 0;padding:24px 32px;background:linear-gradient(135deg,rgba(232,76,107,.08),rgba(232,76,107,.02));border-left:3px solid var(--accent);border-radius:0 var(--r-md) var(--r-md) 0;position:relative}
.blog-quote::before{content:'"';position:absolute;top:-12px;left:20px;font-size:4rem;color:var(--accent);opacity:.3;font-family:'Playfair Display',serif;line-height:1}
.blog-quote p{font-family:'Playfair Display',serif;font-style:italic;font-size:1.12rem;color:var(--text);margin:0;line-height:1.65}
.blog-quote cite{display:block;margin-top:10px;font-size:.78rem;color:var(--accent);font-style:normal;font-weight:600}
.blog-img-full{width:100%;border-radius:var(--r-md);margin:2em 0 .5em;display:block;max-height:440px;object-fit:cover;transition:transform .5s ease;cursor:zoom-in}
.blog-img-full:hover{transform:scale(1.01)}
.blog-img-caption{font-size:.78rem;color:var(--muted);text-align:center;margin-bottom:2em;font-style:italic}
.blog-img-float-left{float:left;width:46%;margin:4px 28px 16px 0;border-radius:var(--r-md);object-fit:cover;height:240px;cursor:zoom-in;transition:transform .5s ease}
.blog-img-float-left:hover{transform:scale(1.02)}
.blog-img-float-right{float:right;width:46%;margin:4px 0 16px 28px;border-radius:var(--r-md);object-fit:cover;height:240px;cursor:zoom-in;transition:transform .5s ease}
.blog-img-float-right:hover{transform:scale(1.02)}
.blog-clearfix::after{content:'';display:table;clear:both}
.blog-img-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:2em 0}
.blog-img-grid img{border-radius:var(--r-md);height:200px;object-fit:cover;cursor:zoom-in;transition:transform .4s ease}
.blog-img-grid img:hover{transform:scale(1.03)}
.blog-highlights{display:flex;flex-direction:column;gap:10px;margin:1em 0 2em}
.blog-highlight-item{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;background:var(--glass);border:1px solid var(--border);border-radius:var(--r-md);font-size:.9rem;color:var(--muted);line-height:1.55;transition:border-color var(--t)}
.blog-highlight-item:hover{border-color:rgba(232,76,107,.3)}
.blog-highlight-icon{flex-shrink:0}
.blog-tips{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:1em 0 2em}
.blog-tip-item{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:rgba(45,212,191,.05);border:1px solid rgba(45,212,191,.14);border-radius:var(--r-md);font-size:.85rem;color:var(--muted);line-height:1.55}
.blog-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:1em 0 2em}
.blog-info-item{padding:14px 16px;background:var(--glass);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color var(--t)}
.blog-info-item:hover{border-color:rgba(232,76,107,.25)}
.blog-info-key{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.blog-info-val{font-size:.9rem;font-weight:600;color:var(--text)}
.blog-post-nav{display:flex;align-items:center;justify-content:space-between;padding:20px 40px;border-top:1px solid var(--border);background:var(--bg);flex-shrink:0;gap:12px}
.blog-nav-btn{display:flex;align-items:center;gap:10px;padding:10px 18px;border-radius:var(--r-md);background:var(--glass);border:1px solid var(--border);color:var(--muted);font-size:.82rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--t)}
.blog-nav-btn:hover{border-color:var(--accent);color:var(--text)}
.blog-nav-btn:disabled{opacity:.3;pointer-events:none}

/* ── 15. LIGHTBOX ─────────────────────────────────────────── */
.blog-lightbox{position:fixed;inset:0;z-index:2000;background:rgba(4,6,14,.97);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;flex-direction:row;gap:0;opacity:0;pointer-events:none;transition:opacity .3s ease}
.blog-lightbox.active{opacity:1;pointer-events:all}
.lightbox-media-wrap{display:flex;align-items:center;justify-content:center;flex:1;max-width:92vw;}
.blog-lightbox img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:var(--r-md);box-shadow:0 40px 120px rgba(0,0,0,.8)}
.blog-lightbox video{max-width:100%;max-height:82vh;border-radius:var(--r-md);box-shadow:0 40px 120px rgba(0,0,0,.8);background:#000}
.blog-lightbox-close{position:absolute;top:20px;right:24px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid var(--border2);color:var(--text);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--t)}
.blog-lightbox-close:hover{background:var(--accent);border-color:var(--accent);transform:rotate(90deg)}
.lightbox-caption{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:.85rem;color:rgba(255,255,255,.75);text-align:center;font-style:italic;max-width:600px;background:rgba(0,0,0,.4);padding:6px 18px;border-radius:50px;backdrop-filter:blur(8px)}
.lightbox-counter{position:absolute;top:20px;left:50%;transform:translateX(-50%);font-size:.8rem;font-weight:700;color:rgba(255,255,255,.9);background:rgba(0,0,0,.5);padding:5px 16px;border-radius:50px;backdrop-filter:blur(8px);letter-spacing:.08em;pointer-events:none}
.lightbox-arrow{position:relative;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:2rem;cursor:pointer;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all var(--t);flex-shrink:0;margin:0 12px;line-height:1}
.lightbox-arrow:hover{background:var(--accent);border-color:var(--accent);transform:scale(1.1)}

/* ── 16. TOAST ────────────────────────────────────────────── */
.toast-container{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:9000;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}
.toast{padding:12px 24px;border-radius:50px;font-size:.88rem;font-weight:600;pointer-events:all;opacity:0;transform:translateY(20px) scale(.95);transition:all .35s var(--ease);white-space:nowrap;max-width:440px;text-align:center}
.toast.show{opacity:1;transform:translateY(0) scale(1)}
.toast-success{background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.3);color:#4ade80}
.toast-error{background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);color:#f87171}
.toast-info{background:rgba(232,76,107,.12);border:1px solid rgba(232,76,107,.28);color:var(--accent)}
.toast-warning{background:rgba(245,200,66,.12);border:1px solid rgba(245,200,66,.28);color:var(--gold)}

/* ── 17. FAB ──────────────────────────────────────────────── */
.fab-wrap{position:fixed;bottom:32px;right:32px;z-index:800;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.fab-main{width:58px;height:58px;border-radius:50%;background:var(--accent);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 30px var(--glow);transition:all var(--t);position:relative;z-index:2}
.fab-main::before{content:'';position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(232,76,107,.3);animation:fabPulse 2.5s ease-in-out infinite}
.fab-main:hover{background:var(--accent-h);transform:scale(1.08);box-shadow:0 12px 40px var(--glow)}
.fab-main.open{background:var(--bg3);transform:rotate(45deg)}
.fab-main.open::before{display:none}
@keyframes fabPulse{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:0}}
.fab-menu{display:flex;flex-direction:column;gap:8px;align-items:flex-end;opacity:0;pointer-events:none;transform:translateY(10px) scale(.96);transition:all .28s var(--ease)}
.fab-menu.open{opacity:1;pointer-events:all;transform:translateY(0) scale(1)}
.fab-action{display:flex;align-items:center;gap:10px;padding:10px 18px;border-radius:50px;background:var(--bg3);border:1px solid var(--border);color:var(--text);font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--t);white-space:nowrap;box-shadow:0 4px 16px rgba(0,0,0,.4)}
.fab-action:hover{border-color:var(--accent);transform:translateX(-4px)}
.fab-action-primary{background:rgba(232,76,107,.15);border-color:rgba(232,76,107,.35);color:var(--accent)}
.fab-action-primary:hover{background:rgba(232,76,107,.25)}
.fab-divider{width:100%;height:1px;background:var(--border);margin:2px 0}

/* ── 18. EDITOR MODAL ────────────────────────────────────── */
.editor-backdrop{position:fixed;inset:0;background:rgba(4,6,14,.9);backdrop-filter:blur(12px);z-index:1100;opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}
.editor-backdrop.active{opacity:1;pointer-events:all}
.editor-wrap{position:fixed;inset:0;z-index:1101;display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease);transform:scale(.95)}
.editor-wrap.active{opacity:1;pointer-events:all;transform:scale(1)}
.editor-modal{width:100%;max-width:820px;max-height:95vh;background:rgba(13,20,38,0.75);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:var(--r-xl);border:1px solid rgba(255,255,255,0.08);box-shadow:0 40px 120px rgba(0,0,0,.9);display:flex;flex-direction:column;overflow:hidden}
.editor-header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1px solid var(--border);flex-shrink:0;background:rgba(13,18,32,0.4)}
.editor-header-left{display:flex;align-items:center;gap:16px}
.editor-icon{font-size:2rem}
.editor-title{font-size:1.4rem;font-weight:800}
.editor-subtitle{font-size:.8rem;color:var(--muted);margin-top:2px}
.editor-close{width:40px;height:40px;border-radius:50%;background:var(--glass2);border:1px solid var(--border);color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--t)}
.editor-close:hover{background:rgba(232,76,107,.15);border-color:var(--accent);color:var(--accent);transform:rotate(90deg)}
.editor-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);background:var(--bg3);flex-shrink:0;overflow-x:auto}
.editor-tab{display:flex;align-items:center;gap:8px;padding:14px 22px;border-bottom:3px solid transparent;font-size:.83rem;font-weight:600;color:var(--muted);cursor:pointer;transition:all var(--t);white-space:nowrap;background:none;flex-shrink:0}
.editor-tab:hover{color:var(--text)}
.editor-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.editor-body{overflow-y:auto;flex:1;padding:0}
.editor-body::-webkit-scrollbar{width:4px}
.editor-body::-webkit-scrollbar-thumb{background:var(--accent)}
.editor-panel{display:none;padding:28px}
.editor-panel.active{display:block;animation:slideUp .3s var(--ease)}
.editor-footer{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-top:1px solid var(--border);background:rgba(13,18,32,.8);flex-shrink:0;gap:12px}
.editor-footer-left,.editor-footer-right{display:flex;align-items:center;gap:10px}
.editor-tab-prev,.editor-tab-next{padding:10px 20px;border-radius:var(--r-md);background:var(--glass2);border:1px solid var(--border);color:var(--muted);font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--t)}
.editor-tab-prev:hover,.editor-tab-next:hover{border-color:var(--border2);color:var(--text)}
.editor-save{padding:12px 28px}
.btn-editor-danger{padding:10px 18px;border-radius:var(--r-md);background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.25);color:#f87171;font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--t)}
.btn-editor-danger:hover{background:rgba(239,68,68,.2);border-color:#ef4444}

/* ── 19. FORM ELEMENTS ───────────────────────────────────── */
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group.full{grid-column:1/-1}
.form-label{font-size:.8rem;font-weight:600;color:var(--muted);letter-spacing:.05em}
.form-input{background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--r-sm);padding:11px 14px;color:var(--text);font-size:.9rem;transition:border-color var(--t),box-shadow var(--t);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}
.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(232,76,107,.12)}
.form-input::placeholder{color:var(--muted2)}
select.form-input option{background:var(--bg3)}
.form-hint{font-size:.73rem;color:var(--muted2);margin-top:2px}
.story-textarea{font-size:.93rem;line-height:1.8;resize:vertical;min-height:300px}
.story-counter{text-align:right;font-size:.72rem;color:var(--muted2);margin-top:4px}
.story-hint{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:rgba(45,212,191,.06);border:1px solid rgba(45,212,191,.14);border-radius:var(--r-sm);font-size:.8rem;color:var(--muted);margin-bottom:10px;line-height:1.5}

/* Difficulty selector */
.diff-selector{display:flex;gap:12px}
.diff-option{cursor:pointer}
.diff-option input{display:none}
.diff-label{padding:8px 20px;border-radius:50px;border:1.5px solid var(--border);font-size:.82rem;font-weight:600;color:var(--muted);cursor:pointer;transition:all var(--t);display:block}
.diff-label.easy{border-color:rgba(34,197,94,.3);color:rgba(34,197,94,.7)}
.diff-label.mid{border-color:rgba(245,158,11,.3);color:rgba(245,158,11,.7)}
.diff-label.hard{border-color:rgba(232,76,107,.3);color:rgba(232,76,107,.7)}
.diff-option input:checked + .diff-label.easy{background:rgba(34,197,94,.15);border-color:#22c55e;color:#22c55e}
.diff-option input:checked + .diff-label.mid{background:rgba(245,158,11,.15);border-color:#f59e0b;color:#f59e0b}
.diff-option input:checked + .diff-label.hard{background:rgba(232,76,107,.15);border-color:var(--accent);color:var(--accent)}

/* Star picker */
.star-picker{display:flex;gap:6px}
.star-btn{font-size:1.6rem;color:var(--muted2);background:none;border:none;cursor:pointer;transition:color var(--t),transform var(--t);padding:0 2px}
.star-btn.active{color:var(--gold)}
.star-btn:hover{transform:scale(1.2)}

/* Photo upload zone */
.photo-upload-zone{position:relative;height:200px;border:2px dashed var(--border);border-radius:var(--r-md);overflow:hidden;cursor:pointer;transition:all var(--t)}
.photo-upload-zone:hover,.photo-upload-zone.drag-over{border-color:var(--accent);background:rgba(232,76,107,.05)}
.photo-upload-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);padding:20px;text-align:center}
.photo-upload-placeholder p{font-size:.9rem;font-weight:600}
.photo-upload-placeholder span{font-size:.75rem;color:var(--muted2)}
.photo-preview{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.photo-remove{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;background:rgba(239,68,68,.85);border:none;color:#fff;font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--t)}
.photo-remove:hover{background:#ef4444;transform:scale(1.1)}
.photo-url-row{display:flex;align-items:center;gap:10px;margin-top:10px}
.photo-url-label{font-size:.8rem;color:var(--muted);white-space:nowrap}
.photo-url-row .form-input{flex:1}
.gallery-upload-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gallery-slot{position:relative;height:110px;border:2px dashed var(--border);border-radius:var(--r-sm);cursor:pointer;overflow:hidden;transition:all var(--t);display:flex;align-items:center;justify-content:center;color:var(--muted2);font-size:1.5rem}
.gallery-slot:hover{border-color:var(--accent);color:var(--accent)}
.gallery-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gallery-slot .photo-remove{width:24px;height:24px;font-size:.75rem}
.gallery-slot input[type=file]{display:none}

/* Dynamic list items */
.details-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.add-item-btn{padding:6px 14px;border-radius:50px;background:rgba(232,76,107,.1);border:1px solid rgba(232,76,107,.25);color:var(--accent);font-size:.78rem;font-weight:700;cursor:pointer;font-family:inherit;transition:all var(--t)}
.add-item-btn:hover{background:rgba(232,76,107,.2)}
.dynamic-list{display:flex;flex-direction:column;gap:8px}
.dynamic-item{display:flex;align-items:center;gap:10px;animation:slideUp .25s var(--ease)}
.dynamic-item .form-input{flex:1}
.dynamic-item .emoji-input{width:52px;text-align:center}
.remove-item-btn{width:32px;height:32px;border-radius:50%;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.2);color:#f87171;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all var(--t);font-size:.85rem}
.remove-item-btn:hover{background:rgba(239,68,68,.2);border-color:#ef4444}

/* ── 20. RESPONSIVE ───────────────────────────────────────── */

/* ─ Tablet landscape (≤1024px) ─────────────────────────── */
@media(max-width:1024px){
  .dest-card{flex:0 0 360px}
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    grid-auto-rows: 200px;
    max-height: 632px;
  }
  .gallery-item.large {
    grid-column: span 2 !important;
    grid-row: span 2 !important;
  }
  .gallery-item.tall {
    grid-row: span 2 !important;
  }
  .about-inner{grid-template-columns:1fr}
  .about-facts{grid-template-columns:1fr}
  .about-visual{order:-1}
  .footer-content{grid-template-columns:1fr 1fr}
  .form-grid-2{grid-template-columns:1fr}
  .form-group.full{grid-column:auto}
  .gallery-upload-grid{grid-template-columns:repeat(2,1fr)}
}

/* ─ Tablet portrait (≤992px) ───────────────────────────── */
@media(max-width:992px){
  /* Nav */
  .nav-links{
    position:fixed;top:0;left:0;right:0;
    background:rgba(8,12,24,.98);
    flex-direction:column;align-items:center;justify-content:center;
    height:100vh;gap:32px;font-size:1.2rem;
    transform:translateX(100%);transition:transform var(--t);z-index:900;
  }
  .nav-links.open{transform:translateX(0)}
  .hamburger{display:flex}

  /* Blog */
  .blog-info-grid{grid-template-columns:1fr 1fr}
  .blog-layout-grid{gap:24px}
}

/* ─ Mobile (≤768px) ────────────────────────────────────── */
@media(max-width:768px){
  /* ── Base utilities */
  .section{padding:64px 0}
  .section-container{padding:0 20px}
  .section-title{font-size:clamp(1.6rem,6vw,2.4rem)}

  /* ── Hero */
  .hero{padding:0 20px}
  .hero-content{padding-top:90px}
  .hero-title{font-size:clamp(2.8rem,13vw,5rem);letter-spacing:-.02em}
  .hero-sub{font-size:.95rem;margin-bottom:32px}
  .hero-actions{gap:10px}
  .hero-actions .btn{padding:12px 24px;font-size:.88rem}
  .hero-stats{
    flex-direction:column;gap:0;
    bottom:16px;left:16px;right:16px;
    transform:none;
    padding:14px 20px;border-radius:var(--r-lg);
    width:auto;
  }
  .stat-card{flex-direction:row;justify-content:space-between;width:100%;padding:10px 0;gap:12px}
  .stat-card:not(:last-child){border-bottom:1px solid var(--border)}
  .stat-num{font-size:1.4rem}
  .stat-divider{display:none}
  .hero-scroll-hint{display:none}
  .title-line.outline{-webkit-text-stroke:1.5px var(--accent)}

  /* ── Navbar */
  .nav-container{padding:0 20px}
  .navbar{padding:16px 0}
  .nav-actions{gap:4px;margin-right:0}
  .nav-logo{max-width:calc(100% - 90px)}

  /* ── Destinations / Cards */
  .section-header{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:32px}
  .dest-header-right{align-items:flex-start;width:100%}
  .filter-bar{justify-content:flex-start;gap:6px}
  .filter-btn{padding:6px 14px;font-size:.75rem}
  .slider-controls{align-self:flex-end}
  .dest-card{flex:0 0 calc(100vw - 40px)}
  .dest-img-wrap{height:220px}
  .dest-info{padding:20px}
  .dest-name{font-size:1.15rem}
  .dest-card-actions{opacity:1} /* Always show on mobile (no hover) */

  /* ── Map */
  #leaflet-map{height:340px}
  .map-section-header{padding:64px 20px 24px}
  .map-legend-inner{gap:16px}
  .map-stats-bar{gap:12px;flex-wrap:wrap}
  .map-legend-bar .section-container{padding:0 20px}

  /* ── Gallery */
  .gallery-grid {
    grid-template-columns: 1fr 1fr !important;
    grid-auto-rows: 160px;
    max-height: none !important;
    overflow: visible !important;
    gap:10px;
  }
  .gallery-item.large,
  .gallery-item.tall,
  .gallery-item.wide {
    grid-column: auto !important;
    grid-row: auto !important;
  }

  /* ── About */
  .about-inner{gap:40px}
  .about-img-container{width:280px}
  .about-facts{grid-template-columns:1fr 1fr;gap:10px}
  .about-fact{padding:14px}
  .about-quote{padding:20px 24px;max-width:100%}
  .about-actions{gap:10px}
  .about-actions .btn{flex:1;justify-content:center;text-align:center;padding:12px 16px;font-size:.88rem}

  /* ── Footer */
  .footer-content{grid-template-columns:1fr;padding:0 20px 16px}
  .footer-bottom{padding:10px 20px 0}

  /* ── Blog Modal */
  .blog-modal-wrap{padding:0}
  .blog-modal{max-height:100dvh;border-radius:0;border:none}
  .blog-hero{height:220px}
  .blog-hero-title{font-size:1.45rem;line-height:1.1}
  .blog-hero-meta{left:16px;right:16px;bottom:16px}
  .blog-hero-badge{font-size:.62rem;padding:4px 10px}
  .blog-layout-grid{grid-template-columns:1fr !important;gap:16px !important;margin:12px !important}
  .blog-map-wrapper{position:static !important}
  .blog-content{padding:16px 16px 32px}
  .blog-img-float-left,.blog-img-float-right{float:none;width:100%;margin:1em 0;height:180px}
  .blog-tips,.blog-info-grid{grid-template-columns:1fr}
  .blog-stats-band{grid-template-columns:repeat(2,1fr)}
  .blog-rating-row{padding:12px 16px;gap:10px}
  .blog-post-nav{padding:12px 16px;gap:8px}
  .blog-nav-btn{padding:8px 12px;font-size:.78rem}
  .blog-topbar{padding:10px 14px}
  .blog-topbar-title{display:none} /* Hide on smallest screens, saves space */
  .blog-close span{display:none} /* Show only icon on mobile */
  .blog-close{padding:8px}
  .blog-action-btn{width:32px;height:32px}

  /* Blog map photos grid */
  #blogMapPhotosStrip{grid-template-columns:repeat(2,1fr) !important}

  /* ── Editor Modal */
  .editor-wrap{padding:0;align-items:flex-end}
  .editor-modal{max-height:96dvh;border-radius:var(--r-xl) var(--r-xl) 0 0}
  .editor-header{padding:18px 20px}
  .editor-title{font-size:1.1rem}
  .editor-tab{padding:12px 14px;font-size:.76rem;gap:5px}
  .editor-panel{padding:18px}
  .editor-footer{padding:14px 20px;flex-wrap:wrap;gap:10px}
  .editor-footer-left,.editor-footer-right{width:100%;justify-content:space-between}
  .diff-selector{flex-wrap:wrap;gap:8px}
  .gallery-upload-grid{grid-template-columns:repeat(3,1fr)}
  .editor-tabs{scrollbar-width:none}
  .editor-tabs::-webkit-scrollbar{display:none}

  /* ── FAB */
  .fab-wrap{bottom:20px;right:16px}
  .fab-main{width:52px;height:52px}
  .fab-action{padding:9px 14px;font-size:.8rem}

  /* ── Toast */
  .toast-container{bottom:16px;left:16px;right:16px;transform:none;align-items:stretch}
  .toast{white-space:normal;text-align:center;max-width:100%}

  /* ── Admin Dashboard */
  .admin-dash-modal{max-height:95dvh}
  .admin-dash-header{padding:14px 16px;flex-wrap:wrap;gap:8px}
  .admin-dash-search-bar{padding:10px 16px}
  .admin-dash-table-wrap{padding:8px 16px 16px}
  .admin-dash-footer{padding:12px 16px;flex-direction:column;gap:10px;align-items:stretch}
  .admin-dash-table th,.admin-dash-table td{padding:10px 8px;font-size:.75rem}
  .admin-dash-table th:nth-child(3),
  .admin-dash-table td:nth-child(3){display:none} /* Hide "Land" column */
  .admin-dash-table th:nth-child(5),
  .admin-dash-table td:nth-child(5){display:none} /* Hide "Tage" column */

  /* ── Lightbox */
  .blog-lightbox-close{top:12px;right:12px;width:38px;height:38px}
  .blog-lightbox-prev,.blog-lightbox-next{width:38px;height:38px}
}

/* ─ Small Mobile (≤480px) ──────────────────────────────── */
@media(max-width:480px){
  /* ── Hero */
  .hero-title{font-size:clamp(2.4rem,14vw,3.5rem)}
  .hero-eyebrow{font-size:.7rem;letter-spacing:.2em}
  .hero-stats{padding:12px 16px}
  .stat-num{font-size:1.2rem}

  /* ── Destinations */
  .dest-card{flex:0 0 calc(100vw - 32px)}
  .slider-btn{width:38px;height:38px}
  .slider-controls{gap:8px}

  /* ── About */
  .about-facts{grid-template-columns:1fr}
  .about-img-container{width:240px}

  /* ── Gallery */
  .gallery-grid{
    grid-template-columns: 1fr !important;
    grid-auto-rows: 200px;
    gap:8px;
  }

  /* ── Blog */
  .blog-hero{height:180px}
  .blog-hero-title{font-size:1.25rem}
  .blog-stats-band{grid-template-columns:repeat(2,1fr)}
  .blog-info-grid{grid-template-columns:1fr}
  .blog-rating-row{padding:12px 14px;gap:8px;flex-wrap:wrap}

  /* ── Editor */
  .editor-tab{padding:10px 10px;font-size:.7rem}
  .gallery-upload-grid{grid-template-columns:repeat(2,1fr)}
  .editor-header{padding:16px}
  .editor-footer{padding:12px 16px}

  /* ── Toast */
  .toast{font-size:.82rem;padding:10px 18px}

  /* ── Map */
  #leaflet-map{height:280px}
}


/* Global scroll progress bar */
.global-scroll-bar {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), var(--accent-h));
  z-index: 10001;
  width: 0%;
  pointer-events: none;
  transition: width 0.1s ease-out;
}

/* Navbar Actions Styling */
.nav-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
  margin-right: 24px;
}
.theme-toggle, .stats-toggle-btn {
  background: none;
  border: none;
  color: var(--muted);
  cursor: pointer;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--t) var(--ease);
  border: 1px solid var(--border);
}
.theme-toggle:hover, .stats-toggle-btn:hover {
  color: var(--text);
  border-color: var(--accent);
  background: var(--glass);
}

/* Legacy Masonry Gallery Grid replaced by CSS Grid */

/* Blog Timeline */
.blog-timeline {
  position: relative;
  margin: 40px 0;
  padding-left: 24px;
  border-left: 2px solid var(--border);
}
.blog-timeline-item {
  position: relative;
  margin-bottom: 30px;
}
.blog-timeline-item:last-child {
  margin-bottom: 0;
}
.blog-timeline-dot {
  position: absolute;
  left: -31px;
  top: 4px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid var(--bg);
  box-shadow: 0 0 0 4px var(--border);
}
.blog-timeline-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 6px;
  color: var(--text);
}
.blog-timeline-text {
  font-size: 0.95rem;
  color: var(--muted);
}

/* Packing list */
.blog-checklist {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 24px;
  margin: 30px 0;
}
.blog-checklist-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.blog-checklist-items {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
}
.blog-checklist-item {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  user-select: none;
  font-size: 0.92rem;
  color: var(--muted);
  transition: color var(--t);
}
.blog-checklist-item input[type="checkbox"] {
  accent-color: var(--accent);
  width: 16px;
  height: 16px;
  cursor: pointer;
}
.blog-checklist-item.checked {
  text-decoration: line-through;
  color: var(--muted2);
}

/* Budget styling */
.blog-budget {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 24px;
  margin: 30px 0;
}
.blog-budget-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.blog-budget-table {
  width: 100%;
  border-collapse: collapse;
}
.blog-budget-table th, .blog-budget-table td {
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
.blog-budget-table th {
  font-weight: 600;
  color: var(--muted);
  font-size: 0.82rem;
  text-transform: uppercase;
}
.blog-budget-table td {
  font-size: 0.92rem;
}
.blog-budget-total {
  text-align: right;
  font-weight: 700;
  color: var(--accent);
  margin-top: 14px;
  font-size: 1.05rem;
}

/* Voice memo audio styling */
.blog-voice-memo {
  background: linear-gradient(135deg, rgba(232,76,107,0.06), rgba(245,200,66,0.03));
  border: 1px dashed var(--accent);
  border-radius: var(--r-md);
  padding: 20px;
  margin: 30px 0;
  display: flex;
  align-items: center;
  gap: 16px;
}
.blog-voice-icon {
  font-size: 24px;
  animation: pulse 2s infinite;
}
.blog-voice-player {
  flex: 1;
}
.blog-voice-player audio {
  width: 100%;
  height: 40px;
  border-radius: 8px;
}

/* Blog Post Image Carousel */
.blog-carousel {
  position: relative;
  margin: 30px 0;
  border-radius: var(--r-md);
  overflow: hidden;
  aspect-ratio: 16 / 9;
  box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}
.blog-carousel-slides {
  display: flex;
  width: 100%;
  height: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.blog-carousel-slides::-webkit-scrollbar {
  display: none;
}
.blog-carousel-slide {
  flex: 0 0 100%;
  height: 100%;
  scroll-snap-align: start;
  position: relative;
}
.blog-carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.blog-carousel-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
  color: #fff;
  padding: 16px 20px;
  font-size: 0.9rem;
  font-weight: 500;
}
.blog-carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(8px);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.2s;
  z-index: 10;
  border: none;
}
.blog-carousel-btn:hover {
  background: var(--accent);
}
.blog-carousel-btn.prev {
  left: 16px;
}
.blog-carousel-btn.next {
  right: 16px;
}

/* Stats Dashboard Modal */
.stats-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(8,12,24,.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 990;
  opacity: 0;
  visibility: hidden;
  transition: all var(--t) var(--ease);
}
.stats-backdrop.active {
  opacity: 1;
  visibility: visible;
}
.stats-wrap {
  position: fixed;
  inset: 0;
  z-index: 995;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  pointer-events: none;
}
.stats-wrap.active {
  pointer-events: auto;
}
.stats-modal {
  width: 100%;
  max-width: 900px;
  max-height: 85vh;
  background: rgba(13,20,38,0.72);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--r-xl);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(0,0,0,0.3);
  transform: scale(0.95) translateY(30px);
  opacity: 0;
  transition: all var(--t) var(--ease);
}
.stats-wrap.active .stats-modal {
  transform: scale(1) translateY(0);
  opacity: 1;
}
.stats-header {
  padding: 24px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.stats-header-left {
  display: flex;
  align-items: center;
  gap: 16px;
}
.stats-icon {
  font-size: 24px;
}
.stats-title {
  font-size: 1.35rem;
  font-weight: 800;
}
.stats-subtitle {
  font-size: 0.8rem;
  color: var(--muted);
}
.stats-close {
  color: var(--muted);
  transition: color var(--t);
  font-size: 1.5rem;
}
.stats-close:hover {
  color: var(--text);
}
.stats-body {
  padding: 24px;
  overflow-y: auto;
}
.stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media (max-width: 768px) {
  .stats-grid {
    grid-template-columns: 1fr;
  }
  .stats-modal {
    max-height: 100vh;
    height: 100%;
    border-radius: 0;
  }
}
.stat-dash-card {
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 20px;
}
.stat-dash-card h3 {
  font-size: 0.95rem;
  font-weight: 700;
  margin-bottom: 16px;
  color: var(--muted);
}
.chart-container {
  height: 200px;
  display: flex;
  align-items: flex-end;
  justify-content: space-around;
  position: relative;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--border);
}

/* Editor map & upload layout */
#editor-map {
  background: var(--bg3);
}
.gallery-slot-card {
  display: flex;
  flex-direction: column;
}
.gallery-caption-input {
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  padding: 6px 10px;
  color: var(--text);
  font-size: 0.82rem;
  outline: none;
}
.gpx-success-state {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  padding: 20px;
}

/* Scroll Animations */
.scroll-fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
}
.scroll-fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Flight arc line animation */
.flight-arc-line {
  stroke-dasharray: 8 8;
  animation: flightDash 25s linear infinite;
}
@keyframes flightDash {
  to {
    stroke-dashoffset: -1000;
  }
}

/* ============================================================
   UPGRADE FEATURES v6 — NEW CUSTOM CSS STYLES
   ============================================================ */

/* 1. Admin Modus Sichtbarkeitsregeln */
.admin-only {
  display: none !important;
}
body.admin-mode .admin-only {
  display: inline-flex !important;
}
body.admin-mode div.admin-only {
  display: block !important;
}
body.admin-mode .fab-wrap.admin-only {
  display: flex !important;
}
body.admin-mode .footer-actions.admin-only {
  display: flex !important;
}
.dest-card-actions {
  display: none !important;
}
body.admin-mode .dest-card-actions {
  display: flex !important;
}

/* 2. Admin-Login Modal & Backdrop */
.admin-login-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(10, 15, 30, 0.82);
  backdrop-filter: blur(8px);
  z-index: 9998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.admin-login-backdrop.active {
  opacity: 1;
  pointer-events: auto;
}
.admin-login-wrap {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  opacity: 0;
  transform: scale(0.92);
  pointer-events: none;
  transition: opacity 0.25s, transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.admin-login-wrap.active {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}
.admin-login-modal {
  background: rgba(13,20,38,0.75);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--r-lg);
  width: 90%;
  max-width: 380px;
  padding: 24px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.6);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  color: var(--text);
}
.admin-login-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--border);
  padding-bottom: 12px;
  margin-bottom: 16px;
}
.admin-login-header h3 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
}
.admin-login-close {
  background: none;
  border: none;
  color: var(--muted);
  cursor: pointer;
  font-size: 1.2rem;
  transition: color 0.2s;
}
.admin-login-close:hover {
  color: var(--text);
}

/* 3. Editor Split-View (Tab 2) */
.editor-split-container {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 20px;
  height: 100%;
  min-height: 380px;
}
.editor-split-left {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.editor-split-right {
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--border);
  padding-left: 20px;
  height: 100%;
}
.markdown-preview-pane {
  flex: 1;
  overflow-y: auto;
  padding: 12px 16px;
  background: rgba(0, 0, 0, 0.15);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  font-size: 0.88rem;
  line-height: 1.6;
  max-height: 360px;
  color: var(--text);
}
.markdown-preview-pane h1, 
.markdown-preview-pane h2, 
.markdown-preview-pane h3 {
  color: var(--accent);
  margin-top: 14px;
  margin-bottom: 8px;
  font-family: var(--f-sans);
}
.markdown-preview-pane p {
  margin-bottom: 10px;
}
.markdown-preview-pane img {
  max-width: 100%;
  height: auto;
  border-radius: var(--r-sm);
  margin: 8px 0;
  border: 1px solid var(--border);
}
@media (max-width: 768px) {
  .editor-split-container {
    grid-template-columns: 1fr;
  }
  .editor-split-right {
    border-left: none;
    padding-left: 0;
    border-top: 1px solid var(--border);
    padding-top: 20px;
  }
}

/* 4. Foto-Pins (Leaflet Map) */
.map-photo-pin {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 3px solid var(--accent);
  background-size: cover;
  background-position: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.45);
  transition: transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275), border-color 0.2s;
  cursor: pointer;
}
.map-photo-pin:hover {
  transform: scale(1.2) translateY(-4px);
  border-color: #3b82f6;
  z-index: 1000 !important;
}

/* 5. Foto-Filter Presets */
.filter-grayscale { filter: grayscale(100%); }
.filter-sepia { filter: sepia(100%); }
.filter-vintage { filter: sepia(45%) contrast(115%) saturate(125%) brightness(95%); }
.filter-cold { filter: hue-rotate(185deg) saturate(75%) brightness(105%); }
.filter-dramatic { filter: contrast(135%) brightness(90%) saturate(110%); }

/* 6. Lightbox Slider Pfeile */
.lightbox-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(10, 15, 30, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  color: #fff !important;
  font-size: 32px !important;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  cursor: pointer;
  display: flex !important;
  align-items: center;
  justify-content: center;
  z-index: 10100;
  transition: background 0.2s, transform 0.2s;
  user-select: none;
}
.lightbox-arrow:hover {
  background: var(--accent) !important;
  transform: translateY(-50%) scale(1.1);
}
.lightbox-arrow.prev {
  left: 24px;
}
.lightbox-arrow.next {
  right: 24px;
}
@media (max-width: 576px) {
  .lightbox-arrow {
    width: 38px;
    height: 38px;
    font-size: 20px !important;
  }
  .lightbox-arrow.prev { left: 12px; }
  .lightbox-arrow.next { right: 12px; }
}

/* 7. Automatic TOC (Inhaltsverzeichnis) */
.blog-toc details {
  background: rgba(0, 0, 0, 0.12);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 12px;
}
.blog-toc summary {
  list-style: none;
  outline: none;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 8px;
}
.blog-toc summary::-webkit-details-marker {
  display: none;
}
.blog-toc ul {
  list-style: none;
  margin: 8px 0 0 0;
  padding-left: 16px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.blog-toc a {
  text-decoration: none;
  font-size: 0.84rem;
  color: var(--muted);
  transition: color 0.2s;
}
.blog-toc a:hover {
  color: var(--accent);
}
.blog-toc a.toc-level-1 { font-weight: 600; color: var(--text); }
.blog-toc a.toc-level-2 { padding-left: 12px; }
.blog-toc a.toc-level-3 { padding-left: 24px; font-style: italic; }

/* 8. 360-Degree Panorama Container */
.panorama-viewer-container {
  background-position: 0px center;
  background-repeat: repeat-x;
  background-size: auto 100%;
  cursor: grab;
  user-select: none;
  -webkit-user-drag: none;
  transition: background-position-x 0.05s ease-out;
}
.panorama-viewer-container:active {
  cursor: grabbing;
}

/* 9. Blog dots for hero slideshow */
.blog-hero-dots .blog-hero-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: all 0.25s ease;
}
.blog-hero-dots .blog-hero-dot.active {
  background: var(--accent) !important;
  width: 18px !important;
  border-radius: 4px !important;
}

/* 10. Voice player design tweak */
.blog-voice-memo {
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 16px;
  margin: 20px 0;
  display: flex;
  align-items: center;
  gap: 12px;
}
.blog-voice-player {
  flex: 1;
}

/* 11. Elevation Graph Hover Marker Animation */
@keyframes markerPulse {
  0% { transform: scale(0.5); opacity: 0.8; }
  100% { transform: scale(2.2); opacity: 0; }
}

/* ============================================================
   UPGRADE FEATURES v7 — STRUCTURED DAYS & DETAIL MAP
   ============================================================ */

.blog-layout-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 24px;
  margin: 24px;
}

@media (max-width: 992px) {
  .blog-layout-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    margin: 16px;
  }
  
  .blog-map-column {
    order: -1;
  }
}

.blog-map-wrapper {
  position: sticky;
  top: 24px;
  z-index: 10;
}

#blogDetailMap {
  height: 380px;
  width: 100%;
  border-radius: var(--r-md);
  border: 1px solid var(--border);
  background: var(--bg3);
}

.blog-day-card {
  margin-bottom: 24px;
  padding: 20px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  transition: transform 0.3s ease, border-color 0.3s ease;
  opacity: 0.6;
}

.blog-day-card.active,
.blog-day-card:hover {
  opacity: 1 !important;
  border-color: var(--accent);
}

.blog-day-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.blog-day-badge {
  background: var(--accent);
  color: #fff;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.blog-day-title {
  margin: 0 0 10px 0;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text);
}

.blog-day-text {
  margin: 0;
  line-height: 1.6;
  color: var(--text-muted);
  font-size: 0.95rem;
}

.blog-day-images {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.blog-day-image-wrap {
  aspect-ratio: 1.4;
  border-radius: var(--r-sm);
  overflow: hidden;
  border: 1px solid var(--border);
  cursor: zoom-in;
}

.blog-day-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.blog-day-image-wrap img:hover {
  transform: scale(1.05);
}

/* Editor Day Card Styles */
.editor-day-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
  transition: border-color 0.2s;
}

.editor-day-card:hover {
  border-color: rgba(255, 255, 255, 0.15);
}

.editor-day-card.drag-over {
  border: 2px dashed var(--accent) !important;
  background: rgba(232, 76, 107, 0.08) !important;
  box-shadow: 0 0 15px rgba(232, 76, 107, 0.15);
  transform: translateY(-2px);
}

.editor-day-card .remove-day-btn {
  background: none;
  border: none;
  color: #ef4444;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 4px;
  transition: background 0.2s;
}

.editor-day-card .remove-day-btn:hover {
  background: rgba(239, 68, 68, 0.1);
}

.day-images-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 6px;
}

.day-image-preview-wrapper {
  position: relative;
  width: 80px;
  height: 80px;
  border-radius: var(--r-sm);
  overflow: hidden;
  border: 1px solid var(--border);
}

.day-image-preview-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.day-image-preview-wrapper .remove-img-btn {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(0,0,0,0.6);
  border: none;
  color: #fff;
  font-size: 10px;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
  transition: background var(--t);
}

.day-image-preview-wrapper .remove-img-btn:hover {
  background: rgba(232,76,107,0.9);
}

.day-image-preview-wrapper .fav-img-btn {
  position: absolute;
  bottom: 2px;
  right: 2px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(0,0,0,0.6);
  border: none;
  color: rgba(255,255,255,0.7);
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
  transition: all var(--t);
  padding: 0;
}

.day-image-preview-wrapper .fav-img-btn:hover {
  background: rgba(0,0,0,0.8);
  color: var(--accent);
  transform: scale(1.1);
}

.day-image-preview-wrapper .fav-img-btn.active {
  background: rgba(232,76,107,0.18);
  border: 1px solid rgba(232,76,107,0.4);
  color: var(--accent);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}


.add-day-img-btn {
  width: 80px;
  height: 80px;
  border-radius: var(--r-sm);
  border: 1px dashed var(--border);
  background: rgba(255,255,255,0.02);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  color: var(--text-muted);
  font-size: 11px;
  transition: border-color 0.2s, background 0.2s;
}

.add-day-img-btn:hover {
  border-color: var(--accent);
  background: rgba(255,255,255,0.05);
}

/* ── 21. BLOG DETAIL MAP ADDITIONAL STYLES ── */
.blog-map-photos-strip {
  scrollbar-width: thin;
  scrollbar-color: var(--accent) var(--bg3);
}

.blog-map-photos-strip::-webkit-scrollbar {
  height: 4px;
}

.blog-map-photos-strip::-webkit-scrollbar-thumb {
  background: var(--accent);
  border-radius: 4px;
}

.blog-map-photo-card {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: var(--r-sm);
  overflow: hidden;
  border: 1.5px solid var(--border);
  cursor: pointer;
  transition: transform 0.2s, border-color 0.2s;
}

.blog-map-photo-card:hover {
  border-color: var(--accent);
  transform: scale(1.05);
}

#startTourBtn {
  transition: background-color 0.2s, transform 0.2s;
}

#startTourBtn.active {
  background: #ef4444 !important;
  box-shadow: 0 0 10px rgba(239, 68, 68, 0.4);
}

/* ── 21. PREMIUM ADDITIONS (v9) ───────────────────────────── */
.global-particles {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}
.blog-day-image-wrap {
  position: relative;
}
.photo-location-btn {
  position: absolute;
  bottom: 6px;
  right: 6px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(13, 20, 38, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 5;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
}
.photo-location-btn:hover {
  background: var(--accent);
  border-color: var(--accent);
  transform: scale(1.1);
  box-shadow: 0 0 8px var(--accent);
}
.blog-video-wrap {
  margin-top: 16px;
  width: 100%;
  border-radius: var(--r-md);
  overflow: hidden;
  border: 1px solid var(--border2);
  aspect-ratio: 1.777;
  background: #000;
  box-shadow: 0 8px 32px rgba(0,0,0,.5);
  position: relative;
}
.blog-video-wrap iframe,
.blog-video-wrap video {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}
.blog-video-wrap video {
  background: #000;
  object-fit: contain;
}
.batch-upload-zone {
  transition: border-color var(--t), background var(--t);
}
.batch-upload-zone.dragover {
  border-color: var(--accent) !important;
  background: rgba(232, 76, 107, 0.05) !important;
}

/* ── 21. AI GENERATOR MODAL SPECIFIC STYLES ───────────────── */
#aiGenDropzone {
  transition: all var(--t) var(--ease);
}
#aiGenDropzone:hover {
  border-color: rgba(232, 76, 107, 0.5);
  background: rgba(255, 255, 255, 0.02);
}
#aiGenDropzone.dragover {
  border-color: var(--accent) !important;
  background: rgba(232, 76, 107, 0.08) !important;
  transform: scale(0.995);
}
.ai-file-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  font-size: 12px;
  color: var(--text);
  gap: 12px;
  animation: scaleIn 0.2s var(--ease) forwards;
}
.ai-file-info {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: 1;
}
.ai-file-name {
  overflow: hidden;
  text-overflow: ellipsis;
}
.ai-file-meta {
  color: var(--muted);
  font-size: 10px;
  font-family: monospace;
  margin-left:auto;
}
.ai-file-remove {
  background: none;
  border: none;
  color: var(--muted);
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all var(--t);
}
.ai-file-remove:hover {
  color: #ef4444;
  background: rgba(239, 68, 68, 0.1);
}
#aiGenProgressArea {
  animation: slideUp 0.3s var(--ease) forwards;
}

/* ── 22. ADMIN DASHBOARD SPECIFIC STYLES ──────────────────── */
.admin-dash-wrap {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
  transform: scale(0.96);
}
.admin-dash-wrap.active {
  opacity: 1;
  pointer-events: all;
  transform: scale(1);
}
.admin-dash-modal {
  background: rgba(13, 20, 38, 0.76);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  width: 100%;
  max-width: 1000px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 24px 60px rgba(0,0,0,0.6);
  overflow: hidden;
  color: var(--text);
  animation: scaleIn 0.3s var(--ease) forwards;
}
.admin-dash-header {
  padding: 24px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--border);
}
.admin-dash-title {
  font-size: 20px;
  font-weight: 800;
  margin: 0;
}
.admin-dash-subtitle {
  font-size: 12px;
  color: var(--muted);
  margin: 4px 0 0;
}
.admin-dash-search-bar {
  padding: 16px 32px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--border);
  background: rgba(0,0,0,0.15);
}
.admin-dash-search-input {
  flex: 1;
  background: transparent;
  border: none;
  color: var(--text);
  font-size: 13px;
  outline: none;
}
.admin-dash-table-wrap {
  flex: 1;
  overflow: auto;
  padding: 8px 32px 24px;
}
.admin-dash-table {
  width: 100%;
  border-collapse: collapse;
}
.admin-dash-table th,
.admin-dash-table td {
  padding: 12px 8px;
  text-align: left;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}
.admin-dash-table th {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--muted);
  font-weight: 600;
}
.admin-dash-table td {
  font-size: 13px;
}
.admin-dash-table tr:hover td {
  background: rgba(255,255,255,0.015);
}
.admin-dash-thumb {
  width: 44px;
  height: 32px;
  border-radius: var(--r-sm);
  object-fit: cover;
  border: 1px solid var(--border);
}
.admin-dash-status-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 50px;
  display: inline-block;
}
.admin-dash-status-badge.live {
  background: rgba(34,197,94,0.15);
  border: 1px solid rgba(34,197,94,0.3);
  color: #4ade80;
}
.admin-dash-status-badge.draft {
  background: rgba(245,158,11,0.15);
  border: 1px solid rgba(245,158,11,0.3);
  color: #fbbf24;
}
.admin-dash-status-badge.planned {
  background: rgba(245,200,66,0.15);
  border: 1px solid rgba(245,200,66,0.3);
  color: #f5c842;
}
.admin-dash-action-group {
  display: flex;
  gap: 8px;
}
.admin-dash-action-btn {
  padding: 5px;
  border-radius: 6px;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border);
  color: var(--text);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all var(--t);
}
.admin-dash-action-btn:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.admin-dash-action-btn.delete:hover {
  background: #ef4444;
  border-color: #ef4444;
}
.admin-dash-footer {
  padding: 18px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--border);
  background: rgba(0,0,0,0.1);
}
.admin-dash-stats {
  font-size: 12px;
  color: var(--muted);
}
.admin-dash-stats strong {
  color: var(--text);
}


/* Drag & Drop - Disable pointer events on children during dragging to prevent flickering */
body.dragging-active .editor-day-card *,
body.dragging-active #coverZone *,
body.dragging-active #batchUploadZone *,
body.dragging-active #gpxZone *,
body.dragging-active #aiGenDropzone * {
  pointer-events: none;
}

/* Hero Image Slideshow Styles */
.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero-bg .hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
}
.hero-bg .hero-img.active {
  opacity: 1;
}

/* Planned state for travel detail view badges */
.blog-hero-badge.planned {
  color: #f5c842 !important;
  background: rgba(245, 200, 66, 0.18) !important;
  border: 1px solid rgba(245, 200, 66, 0.3) !important;
}

/* ============================================================
   TOUCH & MOBILE ENHANCEMENTS
   ============================================================ */

/* ── Touch interaction: remove tap highlight on mobile */
* {
  -webkit-tap-highlight-color: transparent;
}

/* ── Minimum touch target size (44×44px) for all interactive elements */
@media (max-width: 768px) {
  .slider-btn,
  .blog-action-btn,
  .editor-close,
  .hamburger,
  .theme-toggle,
  .filter-btn,
  .fab-main,
  .blog-close,
  .blog-nav-btn,
  .dest-action-btn,
  .remove-item-btn {
    min-height: 44px;
    min-width: 44px;
  }

  /* ── Smooth momentum scrolling inside modals (iOS) */
  .blog-scroll,
  .editor-body,
  .admin-dash-table-wrap,
  .editor-days-list {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }

  /* ── Prevent font zoom on form focus (iOS) */
  .form-input,
  select.form-input,
  textarea.form-input {
    font-size: 16px !important; /* iOS won't zoom if ≥16px */
  }

  /* ── Nav overlay — close when tapping backdrop */
  .nav-links.open {
    /* Full-screen clickable area */
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  /* ── Mobile card actions always visible */
  .dest-card-actions {
    opacity: 1 !important;
    pointer-events: all !important;
  }

  /* ── Better tap feedback for cards */
  .dest-card:active {
    transform: scale(0.98);
    transition: transform .15s ease;
  }

  /* ── Gallery items: always show overlay on touch */
  .gallery-item .gallery-overlay {
    opacity: 0;
  }
  .gallery-item:active .gallery-overlay {
    opacity: 1;
  }

  /* ── Bottom padding on content to clear FAB */
  .section:last-of-type {
    padding-bottom: 100px;
  }

  /* ── Toast wider on small screens */
  .toast {
    box-shadow: 0 8px 32px rgba(0,0,0,.4);
  }
}

/* ── iPhone safe-area support (notch/home bar) */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
  .navbar {
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }
  .fab-wrap {
    bottom: calc(20px + env(safe-area-inset-bottom));
    right: calc(16px + env(safe-area-inset-right));
  }
  .toast-container {
    bottom: calc(16px + env(safe-area-inset-bottom));
  }
  .blog-post-nav {
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }
  .editor-footer {
    padding-bottom: calc(14px + env(safe-area-inset-bottom));
  }
  .admin-dash-footer {
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }
}

/* ── Destination slider: snap to cards on mobile */
@media (max-width: 768px) {
  .dest-slider-wrapper {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    cursor: grab;
  }
  .dest-slider-wrapper:active { cursor: grabbing; }
  .dest-slider {
    overflow: visible;
    /* Remove JS-based transform on mobile, use native scroll */
  }
  .dest-card {
    scroll-snap-align: start;
    flex-shrink: 0;
  }
}
