*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#1a1714;
  --parchment:#f5f1e8;
  --cream:#faf7f2;
  --forest:#2a5243;
  --forest-dark:#1e3d31;
  --terra:#a64e31;
  --dust:#6b5f52;
  --dust-light:#9c8e80;
  --rule:rgba(24,21,15,.12);
  --serif:'Cormorant Garamond',Georgia,serif;
  --body:'Lora',Georgia,serif;
  --mono:'JetBrains Mono',monospace;
  --max:1100px;
  --pad:2.5rem;
}

html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.75;overflow-x:hidden}

/* ── WRAPPER ── */
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}

/* ── NAV ── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(250,247,242,.95);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--rule);
}
.nav-inner{
  max-width:var(--max);margin:0 auto;padding:0 var(--pad);
  display:flex;justify-content:space-between;align-items:center;
  height:56px;
}
.nav-logo{font-family:var(--serif);font-size:1.25rem;font-weight:600;letter-spacing:.04em;color:var(--ink);text-decoration:none}
.nav-logo em{font-style:italic;color:var(--forest)}
.nav-links{display:flex;gap:2rem;list-style:none}
.nav-links a{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--dust);position:relative;padding-bottom:2px;transition:color .2s}
.nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--forest);transition:width .25s}
.nav-links a:hover{color:var(--ink)}
.nav-links a:hover::after{width:100%}
.nav-coord{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;color:var(--dust-light)}
.nav-coord span{color:var(--terra)}

/* ── HERO ── */
.hero{
  padding:6rem var(--pad) 2.5rem;
  max-width:var(--max);margin:0 auto;
  border-bottom:1px solid var(--rule);
}
.hero-chapter{
  display:flex;align-items:center;gap:.8rem;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--terra);margin-bottom:1.5rem;
}
.hero-chapter::before{content:'';display:block;width:24px;height:1px;background:var(--terra)}
h1.hero-hl{
  font-family:var(--serif);
  font-size:clamp(2.2rem,5vw,4rem);
  font-weight:300;font-style:italic;
  line-height:1.05;letter-spacing:-.01em;
  color:var(--ink);margin-bottom:1.5rem;max-width:18ch;
}
h1.hero-hl .acc{color:var(--forest)}
.hero-byline{font-family:var(--body);font-size:.95rem;color:var(--dust);max-width:52ch;line-height:1.8}
.hero-svg{display:none}
.hero-bg-letter{display:none}
.hero-scroll{display:none}
.hero-sub{display:block}

/* ── INTRO ── */
.intro{
  max-width:var(--max);margin:0 auto;
  padding:3rem var(--pad);
  border-bottom:1px solid var(--rule);
}
.intro-num{display:none}
.intro-label{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);margin-bottom:1rem}
.intro-quote{
  font-family:var(--serif);font-size:1.5rem;
  font-weight:400;font-style:italic;
  line-height:1.3;color:var(--ink);max-width:44ch;margin-bottom:1rem;
}
.intro-body p{font-size:.9rem;color:var(--dust);max-width:55ch;line-height:1.85}

/* ── ROUTE ── */
.route{
  background:var(--parchment);
  border-bottom:1px solid var(--rule);
}
.route-inner{max-width:var(--max);margin:0 auto;padding:2rem var(--pad)}
.route-label{font-family:var(--mono);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dust-light);margin-bottom:1.2rem}
.route-path{display:flex;align-items:center;overflow-x:auto;padding-bottom:.3rem;gap:0;scrollbar-width:none}
.route-path::-webkit-scrollbar{display:none}
.rp-city{display:flex;align-items:center;flex-shrink:0}
.rp-dot{width:6px;height:6px;border-radius:50%;background:var(--forest);flex-shrink:0;position:relative}
.rp-dot::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:13px;height:13px;border-radius:50%;border:1px solid rgba(42,82,67,.2)}
.rp-dot.end{background:var(--terra)}
.rp-dot.end::before{border-color:rgba(166,78,49,.2)}
.rp-name{font-family:var(--body);font-size:.9rem;font-style:italic;color:var(--ink);white-space:nowrap;padding:0 .5rem}
.rp-line{width:60px;height:1px;flex-shrink:0;background:repeating-linear-gradient(90deg,var(--forest) 0,var(--forest) 3px,transparent 3px,transparent 8px);opacity:.3}

/* ── CATEGORIES ── */
.categories{max-width:var(--max);margin:0 auto;padding:0 var(--pad) 4rem}
.cat-header{padding:2.5rem 0 1.8rem;display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--rule);margin-bottom:2px}
.cat-header-label{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dust-light)}
.cat-header-note{font-family:var(--body);font-size:.88rem;font-style:italic;color:var(--dust-light)}
.cat-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2px;background:var(--rule)}
.cat-card{background:var(--cream);padding:2rem 1.5rem;display:flex;flex-direction:column;cursor:pointer;position:relative;overflow:hidden;text-decoration:none;color:inherit;min-height:200px;transition:background .25s}
.cat-card:hover{background:var(--parchment)}
.cat-card.feat{grid-row:span 2;min-height:380px;justify-content:flex-end;background:var(--forest)}
.cat-card.feat:hover{background:var(--forest-dark)}
.cat-n{font-family:var(--mono);font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dust-light);margin-bottom:auto}
.cat-card.feat .cat-n{color:rgba(255,255,255,.3)}
.feat-bg{position:absolute;bottom:.5rem;right:1rem;font-family:var(--serif);font-size:5rem;font-weight:300;line-height:1;color:rgba(255,255,255,.05);user-select:none}
.cat-title{font-family:var(--serif);font-size:1.5rem;font-weight:400;font-style:italic;line-height:1.15;margin-bottom:.4rem}
.cat-card.feat .cat-title{color:rgba(255,255,255,.92)}
.cat-desc{font-size:.8rem;color:var(--dust);max-width:26ch;line-height:1.6}
.cat-card.feat .cat-desc{color:rgba(255,255,255,.45)}
.cat-arrow{display:inline-flex;align-items:center;gap:.4rem;margin-top:1.2rem;font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dust-light);transition:gap .2s,color .2s}
.cat-card:hover .cat-arrow{gap:.8rem;color:var(--ink)}
.cat-card.feat .cat-arrow{color:rgba(255,255,255,.4)}
.cat-card.feat:hover .cat-arrow{gap:.8rem;color:rgba(255,255,255,.85)}

/* ── ABOUT ── */
.about{background:var(--parchment);border-top:1px solid var(--rule)}
.about-inner{max-width:var(--max);margin:0 auto;padding:4rem var(--pad);display:grid;grid-template-columns:1fr 1.6fr;gap:3rem;align-items:start}
.about-photo{aspect-ratio:4/5;max-height:380px;position:relative;border:1px solid var(--rule);display:flex;align-items:center;justify-content:center;overflow:hidden}
.about-photo::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(24,21,15,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(24,21,15,.03) 1px,transparent 1px);background-size:40px 40px}
.about-photo-corner{position:absolute;width:20px;height:20px;border-color:rgba(42,82,67,.2);border-style:solid}
.about-photo-corner.tl{top:.8rem;left:.8rem;border-width:1px 0 0 1px}
.about-photo-corner.br{bottom:.8rem;right:.8rem;border-width:0 1px 1px 0}
.about-label{display:flex;align-items:center;gap:.8rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);margin-bottom:1.2rem}
.about-label::before{content:'';display:block;width:24px;height:1px;background:var(--terra)}
h2.about-hl{font-family:var(--serif);font-size:clamp(1.6rem,3.5vw,2.6rem);font-weight:300;font-style:italic;line-height:1.15;margin-bottom:1.2rem}
.about-txt{font-size:.88rem;color:var(--dust);line-height:1.85;max-width:48ch;margin-bottom:1.5rem}
.tags{display:flex;gap:.5rem;flex-wrap:wrap}
.tag{font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .7rem;border:1px solid var(--rule);color:var(--dust)}
.tag:hover{border-color:rgba(42,82,67,.25);color:var(--forest);cursor:default}

/* ── FOOTER ── */
footer{border-top:1px solid var(--rule)}
.foot-inner{max-width:var(--max);margin:0 auto;padding:1.8rem var(--pad);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.8rem}
.foot-logo{font-family:var(--serif);font-size:.88rem;font-style:italic;color:var(--dust)}
.foot-copy{font-family:var(--mono);font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dust-light)}
.foot-legal{display:flex;gap:1.5rem}
.foot-link{font-family:var(--mono);font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dust-light);text-decoration:none;transition:color .2s}
.foot-link:hover{color:var(--ink)}
.foot-up{font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dust-light);text-decoration:none;transition:color .2s}
.foot-up:hover{color:var(--ink)}

/* ── ANIMATIONS ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.a1{animation:fadeUp .7s ease both}
.a2{animation:fadeUp .7s .1s ease both}
.a3{animation:fadeUp .7s .2s ease both}

/* ── REISEBERICHTE INDEX ── */
.rb-header{background:var(--parchment)}
.rb-header-inner{max-width:var(--max);margin:0 auto;padding:5.5rem var(--pad) 2.5rem;display:flex;justify-content:space-between;align-items:center;gap:3rem;border-bottom:1px solid var(--rule)}
.rb-header-text{flex:1;min-width:0}
.rb-header-chapter{display:flex;align-items:center;gap:.8rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--terra);margin-bottom:1.2rem}
.rb-header-chapter::before{content:'';display:block;width:24px;height:1px;background:var(--terra)}
.rb-header-label{font-family:var(--serif);font-size:clamp(1.6rem,4vw,3rem);font-weight:300;font-style:italic;color:var(--ink);margin-bottom:.8rem}
.rb-header-desc{font-family:var(--body);font-size:.9rem;color:var(--dust);max-width:42ch;line-height:1.85}
.rb-header-map{flex-shrink:0;width:280px;opacity:.9}
.rb-header-map svg{display:block;width:100%;height:auto}
.rb-header-count{font-family:var(--mono);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dust-light)}
.rb-list{max-width:var(--max);margin:0 auto;padding:0 var(--pad) 5rem}
.rb-entry{border-bottom:1px solid var(--rule)}
.rb-entry-link{display:grid;grid-template-columns:90px 1fr 70px;gap:2rem;align-items:start;padding:2.2rem 0;text-decoration:none;color:inherit}
.rb-entry-link:hover .rb-entry-title{color:var(--forest)}
.rb-entry-link:hover .rb-entry-arrow{gap:.8rem;color:var(--ink)}
.rb-entry-meta{display:flex;flex-direction:column;gap:.4rem;padding-top:.2rem}
.rb-entry-num{font-family:var(--mono);font-size:.58rem;letter-spacing:.18em;color:var(--dust-light)}
.rb-entry-cat{font-family:var(--mono);font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra)}
.rb-entry-body{display:flex;flex-direction:column;gap:.5rem}
.rb-entry-title{font-family:var(--serif);font-size:clamp(1.2rem,2.5vw,1.8rem);font-weight:400;font-style:italic;line-height:1.15;color:var(--ink);transition:color .2s;margin:0}
.rb-entry-dest{font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dust-light)}
.rb-entry-excerpt{font-size:.85rem;color:var(--dust);line-height:1.75;max-width:52ch;margin:0}
.rb-entry-arrow{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dust-light);transition:gap .2s,color .2s;margin-top:.2rem}
.rb-entry-date{display:flex;flex-direction:column;align-items:flex-end;padding-top:.2rem;gap:.1rem}
.rb-date-day{font-family:var(--serif);font-size:1.6rem;font-weight:300;line-height:1;color:rgba(42,82,67,.18)}
.rb-date-month{font-family:var(--mono);font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dust-light)}

/* ── SINGLE ARTIKEL ── */
.art{max-width:740px;margin:0 auto;padding:6rem var(--pad) 5rem}
.art-breadcrumb{margin-bottom:2rem}
.art-back{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dust-light);text-decoration:none;transition:color .2s}
.art-back:hover{color:var(--ink)}
.art-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:1.2rem;flex-wrap:wrap}
.art-cat{font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--terra)}
.art-sep{color:var(--dust-light);font-family:var(--mono);font-size:.58rem}
.art-dest{display:flex;align-items:center;gap:.3rem;font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dust-light)}
.art-date{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;color:var(--dust-light)}
.art-title{font-family:var(--serif);font-size:clamp(1.8rem,5vw,3.2rem);font-weight:300;font-style:italic;line-height:1.05;letter-spacing:-.01em;color:var(--ink);margin-bottom:1.2rem}
.art-excerpt{font-family:var(--body);font-size:.95rem;color:var(--dust);line-height:1.8;max-width:50ch;margin-bottom:1.8rem;font-style:italic}
.art-rule{width:40px;height:1px;background:var(--rule);margin-bottom:2.5rem}
.art-content{font-family:var(--body);font-size:1rem;line-height:1.9;color:var(--ink)}
.art-content p{max-width:64ch;margin-bottom:1.4rem}
.art-content h2{font-family:var(--serif);font-size:1.5rem;font-style:italic;font-weight:400;margin:2.2rem 0 .8rem;color:var(--ink)}
.art-content h3{font-family:var(--mono);font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;margin:1.8rem 0 .7rem;color:var(--terra)}
.art-content blockquote{border-left:1px solid var(--terra);padding:.8rem 0 .8rem 1.2rem;margin:1.8rem 0;font-family:var(--serif);font-size:1.2rem;font-style:italic;color:var(--ink);max-width:50ch}
.art-content ul,.art-content ol{padding-left:1.4rem;margin-bottom:1.4rem;max-width:58ch}
.art-content li{margin-bottom:.35rem;font-size:.95rem;color:var(--dust)}
.art-content a{color:var(--forest);text-decoration:underline;text-underline-offset:3px}
.art-content a:hover{color:var(--ink)}
.art-footer{margin-top:3.5rem}
.art-footer-rule{width:40px;height:1px;background:var(--rule);margin-bottom:1.8rem}
.art-footer-back{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dust-light);text-decoration:none;transition:color .2s}
.art-footer-back:hover{color:var(--ink)}

/* ── PAGE HERO (generisch für alle Seiten) ── */
.page-hero{background:var(--parchment)}
.page-hero-inner{max-width:var(--max);margin:0 auto;padding:5.5rem var(--pad) 3rem;border-bottom:1px solid var(--rule)}
.page-hero-chapter{display:flex;align-items:center;gap:.8rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--terra);margin-bottom:1.2rem}
.page-hero-chapter::before{content:'';display:block;width:24px;height:1px;background:var(--terra)}
.page-hero-hl{font-family:var(--serif);font-size:clamp(2rem,5vw,3.8rem);font-weight:300;font-style:italic;line-height:1.05;letter-spacing:-.01em;color:var(--ink);margin-bottom:1rem}
.page-hero-sub{font-family:var(--body);font-size:.9rem;color:var(--dust);max-width:48ch;line-height:1.85}

/* ── KONTAKT ── */
.contact-section{max-width:var(--max);margin:0 auto;padding:4rem var(--pad) 6rem}
.contact-inner{max-width:560px}
.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem 2.5rem}
.form-field{display:flex;flex-direction:column;gap:.5rem}
.form-field--full{grid-column:span 2}
.form-label{font-family:var(--mono);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dust)}
.form-input{font-family:var(--body);font-size:.95rem;color:var(--ink);background:transparent;border:none;border-bottom:1px solid var(--rule);padding:.5rem 0;outline:none;transition:border-color .25s;width:100%;-webkit-appearance:none}
.form-input:focus{border-bottom-color:var(--forest)}
.form-textarea{resize:vertical;min-height:130px;line-height:1.7}
.form-error{font-family:var(--mono);font-size:.55rem;letter-spacing:.1em;color:var(--terra)}
.form-submit{grid-column:span 2;padding-top:.5rem}
.form-btn{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;background:var(--forest);color:var(--cream);border:none;padding:.9rem 2.2rem;cursor:pointer;transition:background .25s}
.form-btn:hover{background:var(--forest-dark)}
.form-success{display:flex;align-items:flex-start;gap:1.2rem;padding:2rem;border:1px solid rgba(42,82,67,.2);background:rgba(42,82,67,.04)}
.form-success-icon{font-family:var(--mono);font-size:1rem;color:var(--forest);margin-top:.1rem}
.form-success p{font-family:var(--body);font-size:.9rem;color:var(--dust);line-height:1.75}

/* ── GALERIE ── */
.gallery-section{max-width:var(--max);margin:0 auto;padding:3rem var(--pad) 6rem}
.gallery-filter{display:flex;gap:1.8rem;margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.gallery-filter-btn{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dust-light);background:none;border:none;cursor:pointer;padding:.2rem 0;position:relative;transition:color .2s}
.gallery-filter-btn:hover,.gallery-filter-btn.active{color:var(--ink)}
.gallery-filter-btn.active::after{content:'';position:absolute;bottom:-1.5rem;left:0;width:100%;height:1px;background:var(--forest)}
.gallery-grid{columns:3;gap:1.5rem;column-gap:1.5rem}
.gallery-item{break-inside:avoid;margin-bottom:1.5rem}
.gallery-item-inner{background:var(--parchment);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;transition:opacity .25s}
.gallery-item-inner:hover{opacity:.85}
.gallery-item-caption{padding:.5rem 0;display:flex;justify-content:space-between;align-items:baseline}
.gallery-item-dest{font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dust)}
.gallery-item-date{font-family:var(--mono);font-size:.55rem;color:var(--dust-light)}
.gallery-empty{padding:6rem 0;text-align:center}
.gallery-empty svg{margin:0 auto 1.5rem;display:block;opacity:.25}
.gallery-empty-msg{font-family:var(--serif);font-size:1.2rem;font-style:italic;font-weight:300;color:var(--dust);margin-bottom:.4rem}
.gallery-empty-sub{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dust-light)}

/* ── IMPRESSUM / LEGAL ── */
.legal-page{max-width:680px;margin:0 auto;padding:3rem var(--pad) 6rem}
.legal-section{margin-bottom:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--rule)}
.legal-section:last-child{border-bottom:none;margin-bottom:0}
.legal-section h2{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);margin-bottom:1rem}
.legal-section p,.legal-section address{font-family:var(--body);font-size:.9rem;color:var(--dust);line-height:1.9;font-style:normal}
.legal-section p+p{margin-top:.8rem}
.legal-section a{color:var(--forest);text-decoration:underline;text-underline-offset:3px}

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  :root{--pad:2rem}
  .cat-grid{grid-template-columns:1fr 1fr}
  .cat-card.feat{grid-row:span 1;grid-column:span 2;min-height:220px}
  .about-inner{grid-template-columns:1fr;gap:2.5rem}
  .about-photo{max-height:240px;aspect-ratio:16/9}
}
@media(max-width:768px){
  :root{--pad:1.4rem}
  .nav-coord{display:none}
  .nav-links{gap:1.2rem}
  .hero{padding:5rem var(--pad) 3rem}
  .cat-grid{grid-template-columns:1fr}
  .cat-card.feat{grid-column:span 1;min-height:200px}
  .rb-header-inner{flex-direction:column;align-items:flex-start;gap:1.8rem}
  .rb-header-map{width:100%;max-width:340px}
  .rb-entry-link{grid-template-columns:1fr;gap:.8rem;padding:1.8rem 0}
  .rb-entry-date{flex-direction:row;align-items:center;gap:.4rem}
  .rb-date-day{font-size:1rem;color:var(--dust-light)}
  .rb-entry-meta{flex-direction:row;gap:.8rem}
  .foot-inner{flex-direction:column;gap:.8rem;text-align:center}
  .foot-legal{justify-content:center}
  .form-fields{grid-template-columns:1fr}
  .form-field--full,.form-submit{grid-column:span 1}
  .gallery-grid{columns:2}
}
@media(max-width:480px){
  :root{--pad:1rem}
  .nav-links a{font-size:.55rem;letter-spacing:.1em}
  .intro-quote{font-size:1.2rem}
  .gallery-grid{columns:1}
}
