:root{
  --paper:#ffffff;
  --paper-2:#f5f7f9;
  --ink:#0e2b45;
  --ink-2:#17395a;
  --gold:#b88f53;
  --gold-2:#e6d7bd;
  --muted:#5b6875;
  --rule:#e2e6ea;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --wrap:1220px;
  --pad:clamp(20px,5vw,64px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.72;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;margin:0;line-height:1.12;letter-spacing:-.012em}
p{margin:0 0 1.15em}
p:last-child{margin-bottom:0}

.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.eyebrow{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;
  color:var(--gold);margin:0 0 18px;display:flex;align-items:center;gap:14px;
}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--gold-2);max-width:120px}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:10px 18px;z-index:100}
.skip:focus{left:12px;top:12px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ---------- Sprachleiste ---------- */
.topbar{background:var(--ink);color:#cfd9e3;font-size:12.5px;letter-spacing:.05em}
.topbar .wrap{display:flex;align-items:center;min-height:36px}
.langs{display:flex;gap:14px;list-style:none;margin:0;padding:0}
.langs a{display:flex;align-items:center;text-decoration:none;padding:7px 2px;border-bottom:2px solid transparent;opacity:.62;transition:border-color .2s,opacity .2s}
.langs img{display:block;height:18px;width:auto;box-shadow:0 0 0 1px rgba(255,255,255,.28)}
.langs svg{display:block;height:19px;width:auto;color:#dbe4ec}
.langs a:hover{opacity:1}
.langs .is-active{opacity:1;border-bottom-color:var(--gold)}

/* ---------- Kopf ---------- */
.masthead{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--rule)}
.masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:78px}
.brand{display:block;flex-shrink:0;line-height:0}
.brand img{height:clamp(34px,5.6vw,48px);width:auto}
.nav{display:flex;gap:30px;list-style:none;margin:0;padding:0;font-size:13.5px;letter-spacing:.07em;text-transform:uppercase}
.nav a{text-decoration:none;color:var(--ink);padding:6px 0;border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
.nav a:hover{color:var(--gold);border-color:var(--gold)}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 8px;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.nav-toggle span{display:block;height:2px;width:100%;background:var(--ink);transition:transform .25s ease,opacity .2s ease}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:820px){
  .nav-toggle{display:flex}
  .masthead .wrap{min-height:68px}
  .masthead #hauptnav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--rule);box-shadow:0 14px 28px rgba(14,43,69,.10);display:none}
  .masthead #hauptnav.is-open{display:block}
  .nav{flex-direction:column;gap:0;padding:4px var(--pad) 12px}
  .nav li + li{border-top:1px solid var(--rule)}
  .nav a{display:block;padding:15px 0;border-bottom:0}
  .nav a:hover{border-color:transparent}
}

/* ---------- Hero ---------- */
.hero{padding:clamp(48px,7vw,86px) 0 clamp(48px,6vw,72px)}
.hero .grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero h1{font-size:clamp(44px,7.4vw,86px);letter-spacing:-.03em;line-height:.96}
.role{font-size:clamp(13px,1.5vw,15px);letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--gold);margin:20px 0 0}
.rule-sig{display:flex;align-items:center;margin:26px 0 34px;height:3px}
.rule-sig i{display:block;height:100%;background:var(--gold);flex:1;max-width:210px}

.claims{list-style:none;margin:0 0 36px;padding:0}
.claims li{
  display:flex;align-items:baseline;gap:16px;padding:9px 0;
  font-family:var(--serif);font-size:clamp(20px,2.4vw,27px);line-height:1.25;color:var(--ink);
}
.claims svg{width:clamp(19px,2vw,23px);height:clamp(19px,2vw,23px);flex-shrink:0;color:var(--gold);transform:translateY(3px)}

.cta{display:flex;flex-wrap:wrap;gap:14px}
.btn{
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  padding:15px 28px;font-size:13px;letter-spacing:.11em;text-transform:uppercase;font-weight:600;
  border:1px solid var(--ink);transition:background .22s,color .22s,border-color .22s;
}
.btn svg{width:16px;height:16px;fill:currentColor;flex-shrink:0}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:var(--gold);border-color:var(--gold)}
.btn-ghost{color:var(--ink);border-color:var(--rule)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}

.portrait{position:relative;margin:0}
.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 50%;filter:saturate(.96)}
@media(max-width:860px){
  .hero .grid{grid-template-columns:1fr}
  .portrait{order:-1;max-width:420px}
}

/* ---------- Akademische Qualifikationen ---------- */
#qualifikationen,#ueber-mich,#schwerpunkte,#kontakt,#standort{scroll-margin-top:84px}
.credentials{background:var(--ink);color:#fff}
.credentials .wrap{padding-top:clamp(40px,5vw,58px);padding-bottom:clamp(40px,5vw,58px)}
.credentials .eyebrow{color:var(--gold);margin-bottom:34px}
.credentials .eyebrow::after{background:rgba(184,143,83,.4)}
.cred-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.cred{padding:6px clamp(18px,3vw,40px);border-left:1px solid rgba(255,255,255,.16)}
.cred:first-child{padding-left:0;border-left:0}
.cred:last-child{padding-right:0}
.cred h3{font-size:clamp(20px,2.1vw,25px);color:#fff;line-height:1.24}
.cred h3 .abbr{color:var(--gold);font-size:1.3em;line-height:1;letter-spacing:-.01em;white-space:nowrap}
.cred .inst{font-size:13.5px;color:#a8bacb;letter-spacing:.02em;line-height:1.55;margin-top:14px}
@media(max-width:820px){
  .cred-grid{grid-template-columns:1fr;gap:28px}
  .cred{padding:0 0 26px;border-left:0;border-bottom:1px solid rgba(255,255,255,.16)}
  .cred:last-child{padding-bottom:0;border-bottom:0}
}

/* ---------- Abschnitte ---------- */
.section{padding:clamp(64px,8vw,116px) 0}
.section--alt{background:var(--paper-2)}
.section h2{font-size:clamp(32px,4.4vw,50px);max-width:20ch}
.section-head{margin-bottom:clamp(36px,5vw,56px);max-width:760px}

.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:stretch}
.about-copy p{color:#33404d;font-size:17px;line-height:1.72}
.about-media{position:relative;min-height:100%;background-image:url("../media/portrait-warm.jpg");background-image:image-set(url("../media/portrait-warm.webp") type("image/webp"),url("../media/portrait-warm.jpg") type("image/jpeg"));background-size:cover;background-position:50% 22%}
.about-media::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--gold)}
@media(max-width:900px){.about-grid{grid-template-columns:1fr}.about-media{min-height:380px;order:-1}}

/* ---------- Schwerpunkte ---------- */
.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.focus{padding:clamp(26px,3vw,38px);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);background:#fff;transition:background .25s}
.focus:hover{background:#fffdf9}
.focus h3{font-size:21px;margin-bottom:12px;display:flex;align-items:flex-start;gap:13px}
.focus h3 svg{width:30px;height:30px;flex:0 0 30px;color:var(--gold);margin-top:1px}
.focus p{font-size:15.5px;color:var(--muted);line-height:1.65;margin:0}
@media(max-width:900px){.focus-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.focus-grid{grid-template-columns:1fr}}

/* ---------- Standort ---------- */
.place-hero{
  position:relative;display:flex;align-items:center;text-align:center;
  min-height:clamp(360px,31vw,580px);
  background-image:url("../media/standort-header.jpg");background-image:image-set(url("../media/standort-header.webp") type("image/webp"),url("../media/standort-header.jpg") type("image/jpeg"));background-size:cover;background-position:50% 50%;
}
@media(max-width:760px){.place-hero{background-position:30% 50%}}
.place-hero::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,43,69,.90) 0%,rgba(14,43,69,.62) 48%,rgba(14,43,69,.92) 100%)}
.place-hero::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--gold)}
.place-hero .wrap{position:relative;z-index:1;padding-top:clamp(60px,9vw,110px);padding-bottom:clamp(60px,9vw,110px)}
.place-hero h2{color:#fff;font-size:clamp(40px,6vw,72px);letter-spacing:-.02em;max-width:none;line-height:1}
.place-hero .hr-gold{display:block;width:88px;height:2px;background:var(--gold);margin:clamp(22px,3vw,32px) auto;border:0}
.place-hero .sub{font-family:var(--serif);font-size:clamp(18px,2.5vw,27px);color:#ecdcc0;margin:0;line-height:1.35}

.place-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4.5vw,60px);align-items:center}
.place-row + .place-row{margin-top:clamp(44px,6.5vw,86px)}
.place-row--flip .place-figure{order:2}
.place-figure{margin:0}
.place-photo{aspect-ratio:3/2;background-size:cover;background-position:50% 50%}
.place-figure figcaption{margin-top:14px;font-size:13px;line-height:1.5;color:var(--muted);letter-spacing:.03em;border-left:2px solid var(--gold);padding-left:12px}
.place-copy p{color:#33404d;font-size:17px;line-height:1.72}
.ph-cholula{background-image:url("../media/standort-cholula.jpg");background-image:image-set(url("../media/standort-cholula.webp") type("image/webp"),url("../media/standort-cholula.jpg") type("image/jpeg"))}
.ph-angelopolis{background-image:url("../media/standort-angelopolis.jpg");background-image:image-set(url("../media/standort-angelopolis.webp") type("image/webp"),url("../media/standort-angelopolis.jpg") type("image/jpeg"))}
.ph-vulkane{background-image:url("../media/standort-vulkane.jpg");background-image:image-set(url("../media/standort-vulkane.webp") type("image/webp"),url("../media/standort-vulkane.jpg") type("image/jpeg"))}
@media(max-width:860px){
  .place-row{grid-template-columns:1fr;gap:22px}
  .place-row + .place-row{margin-top:48px}
  .place-row--flip .place-figure{order:0}
}

/* ---------- Kontakt ---------- */
.phones{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3.5vw,48px);margin-bottom:clamp(40px,5vw,60px)}
.phone{padding:0}
.phone .flag{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:9px;margin-bottom:10px}
.phone .flag img{height:16px;width:auto;box-shadow:0 0 0 1px rgba(0,0,0,.14);flex-shrink:0}
.phone a{font-family:var(--serif);font-size:clamp(19px,2.2vw,25px);text-decoration:none;color:var(--ink);border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.phone a:hover{color:var(--gold);border-color:var(--gold)}
@media(max-width:760px){.phones{grid-template-columns:1fr;gap:26px}}

.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:36px clamp(28px,4vw,56px)}
.info h3{font-family:var(--sans);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;font-weight:600}
.info p,.info address{font-style:normal;font-size:16px;color:#33404d;margin:0;line-height:1.7}
.info a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold-2);transition:border-color .2s,color .2s}
.info a:hover{color:var(--gold);border-color:var(--gold)}

.social{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
.social a{
  display:inline-flex;align-items:center;gap:9px;text-decoration:none;border:1px solid var(--rule);
  padding:11px 18px;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);
  transition:border-color .2s,color .2s,background .2s;
}
.social a:hover{border-color:var(--gold);color:var(--gold);background:#fffdf9}
.social svg{width:16px;height:16px;fill:currentColor}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule);padding:22px 0}
.faq summary{
  cursor:pointer;list-style:none;font-family:var(--serif);font-size:clamp(19px,2.1vw,23px);
  display:flex;justify-content:space-between;align-items:center;gap:20px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-family:var(--sans);font-size:24px;line-height:1;flex-shrink:0}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:16px;color:var(--muted);max-width:78ch;font-size:16px}

/* ---------- Fuß ---------- */
.foot{background:var(--ink);color:#b9c7d4;padding:clamp(48px,6vw,72px) 0 34px;font-size:14px}
.foot-top{display:flex;flex-wrap:wrap;gap:36px 60px;justify-content:space-between;align-items:flex-start;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.14)}
.foot h3{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;font-weight:600}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{padding:4px 0}
.foot a{text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.foot a:hover{color:#fff;border-color:var(--gold)}
.foot-brand{flex:1 1 460px;max-width:none}
.foot-brand p{font-size:clamp(16px,1.7vw,18.5px);line-height:1.5;color:#dbe5ee}
.foot-social{flex:0 0 auto}
.foot-tags{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0 0;padding:0;list-style:none}
.foot-tags li{border:1px solid rgba(255,255,255,.17);border-radius:999px;padding:7px 16px;font-size:12.5px;line-height:1.3;color:#c3d1de;letter-spacing:.015em}
.foot-tags li:first-child{border-color:rgba(184,143,83,.55);color:var(--gold-2)}
.foot .social{margin-top:0}
.foot .social a{border:1px solid rgba(255,255,255,.22);color:#b9c7d4;background:transparent}
.foot .social a:hover{border-color:var(--gold);color:var(--gold);background:transparent}
.foot-links{margin:18px 0 0;font-size:13.5px}
.foot-links a{border-bottom:1px solid rgba(184,143,83,.55)}
.foot-bottom{display:flex;flex-wrap:wrap;gap:12px 30px;justify-content:space-between;align-items:center;padding-top:26px;font-size:12.5px;color:#8fa2b4}
.foot-legal{display:flex;flex-wrap:wrap;gap:10px 24px;list-style:none;margin:0;padding:0}
.foot-legal a{text-decoration:none;border-bottom:1px solid transparent}
.foot-legal a:hover{color:#fff;border-color:var(--gold)}
.legal-page{padding:clamp(56px,7vw,96px) 0 clamp(64px,8vw,110px)}
.legal-page h1{font-size:clamp(34px,5vw,58px);letter-spacing:-.02em}
.legal-page .rule-sig{margin:24px 0 34px}
.legal-body{max-width:none}
.legal-body h2,.legal-body p,.legal-body address{max-width:74ch}
.legal-body p.label{margin-bottom:6px}
.tel-list{list-style:none;margin:0 0 1.2em;padding:0}
.tel-list li{display:flex;align-items:center;gap:11px;padding:4px 0;font-size:16.5px;line-height:1.6;color:#33404d}
.tel-list img{height:14px;width:auto;box-shadow:0 0 0 1px rgba(0,0,0,.14);flex-shrink:0}
.tel-list a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold-2)}
.tel-list a:hover{color:var(--gold);border-color:var(--gold)}
.legal-body h2{font-size:clamp(20px,2.2vw,25px);margin:38px 0 12px}
.legal-body .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.94em}
.legal-body h3{font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:26px 0 8px}
.legal-body ul{margin:0 0 1.2em;padding-left:20px;max-width:74ch}
/* Lange Textseiten nutzen die volle Inhaltsbreite */
.legal-body--wide h2,.legal-body--wide h3,.legal-body--wide p,
.legal-body--wide address,.legal-body--wide ul{max-width:none}
.legal-body li{color:#33404d;font-size:16.5px;line-height:1.7;padding:2px 0}
.legal-body li::marker{color:var(--gold)}
.legal-body a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold-2)}
.legal-body a:hover{color:var(--gold);border-color:var(--gold)}
.legal-body h2:first-child{margin-top:0}
.legal-body p,.legal-body address{font-style:normal;color:#33404d;font-size:16.5px;line-height:1.75;margin:0 0 1em}
.legal-body .todo{color:var(--muted);border-left:2px solid var(--gold);padding-left:14px}

/* ---------- Bewegung ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

.legal-table{width:100%;max-width:1000px;border-collapse:collapse;margin:4px 0 1.6em}
.legal-table th{text-align:left;font-family:var(--sans);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600;padding:0 20px 10px 0;border-bottom:1px solid var(--rule)}
.legal-table th:last-child{padding-right:0}
.legal-table td{vertical-align:top;padding:16px 20px 16px 0;border-bottom:1px solid var(--rule);font-size:16px;line-height:1.65;color:#33404d}
.legal-table td:last-child{padding-right:0}
.legal-table td:first-child{width:52%;font-size:16px;line-height:1.65;color:#33404d}
@media(min-width:1100px){.legal-table td:first-child{white-space:nowrap}}
.legal-table a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold-2)}
.legal-table a:hover{color:var(--gold);border-color:var(--gold)}
@media(max-width:700px){
  .legal-table,.legal-table tbody,.legal-table tr,.legal-table td{display:block;width:auto}
  .legal-table thead{display:none}
  .legal-table tr{border-bottom:1px solid var(--rule);padding:16px 0}
  .legal-table tr:first-child{padding-top:0}
  .legal-table td{border:0;padding:0}
  .legal-table td:first-child{width:auto;margin-bottom:6px}
}

/* ---------- Blog ---------- */
.wrap--wide{max-width:1520px}
.blog-lead{font-family:var(--serif);font-size:clamp(19px,2.3vw,26px);color:var(--muted);margin:0 0 clamp(36px,5vw,56px);line-height:1.4}

.post-list{display:grid;gap:clamp(22px,3vw,34px);margin:0;padding:0;list-style:none}
.post-card{background:#fff;border:1px solid var(--rule);display:grid;grid-template-columns:minmax(280px,38%) 1fr;transition:border-color .25s,box-shadow .25s}
.post-card:hover{border-color:var(--gold-2);box-shadow:0 14px 34px rgba(14,43,69,.07)}
.post-card__media{position:relative;aspect-ratio:16/9;background:var(--paper-2);overflow:hidden}
.post-card__media img{width:100%;height:100%;object-fit:contain;display:block}
.post-card__body{padding:clamp(24px,3vw,38px);display:flex;flex-direction:column;justify-content:center}
.post-meta{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--gold);margin:0 0 14px}
.post-card h2{font-size:clamp(22px,2.4vw,29px);line-height:1.2;margin:0 0 14px}
.post-card h2 a{text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.post-card h2 a:hover{color:var(--gold);border-color:var(--gold)}
.post-card p{font-size:16px;line-height:1.7;color:var(--muted);margin:0 0 20px}
.post-byline{font-size:13.5px;color:var(--ink);display:flex;align-items:center;gap:10px;margin:0}
.post-byline::before{content:"";width:22px;height:1px;background:var(--gold);flex-shrink:0}
@media(max-width:820px){
  .post-card{grid-template-columns:1fr}
  .post-card__media{aspect-ratio:16/9}
}

/* Einzelbeitrag */
.post-header{margin-bottom:clamp(28px,4vw,44px)}
.post-header h1{font-size:clamp(32px,4.6vw,58px);line-height:1.08;letter-spacing:-.018em;margin:0 0 18px}
.post-figure{margin:0 0 clamp(30px,4vw,48px);background:var(--paper-2);aspect-ratio:16/9}
.post-figure img{width:100%;height:100%;object-fit:contain;display:block}
.post-body{max-width:76ch}
.post-body p{font-size:17.5px;line-height:1.78;color:#33404d;margin:0 0 1.15em}
.post-body h2{font-size:clamp(22px,2.4vw,30px);margin:40px 0 14px}

/* ---------- Bilder neben dem Fliesstext ---------- */
.fig-side{margin:6px 0 8px;width:min(38%,400px)}
.fig-sm{width:min(28%,300px)}
.fig-xs{width:min(22%,240px)}
.fig-full{float:none;clear:both;width:100%;margin:clamp(30px,4vw,48px) 0}
.fig-side img{width:100%;height:auto;display:block}
.fig-side figcaption{margin-top:11px;font-size:13px;line-height:1.55;color:var(--muted);
  letter-spacing:.02em;border-left:2px solid var(--gold);padding-left:12px}
.fig-right{float:right;margin-left:clamp(24px,3vw,44px)}
.fig-left{float:left;margin-right:clamp(24px,3vw,44px)}
.article-body h2{clear:both}
.article-body::after{content:"";display:block;clear:both}
@media(max-width:760px){
  .fig-side{float:none;width:100%;max-width:520px;margin:26px auto 30px}
  .fig-full{max-width:none;margin:26px 0 30px}
}

.share{margin-top:clamp(40px,5vw,64px);padding-top:26px;border-top:1px solid var(--rule)}
.share h3{font-family:var(--sans);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:0 0 16px}
.share-list{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:0;padding:0}
.share-list a,.share-list button{
  display:inline-flex;align-items:center;gap:9px;text-decoration:none;border:1px solid var(--rule);
  background:none;cursor:pointer;font-family:inherit;padding:11px 18px;font-size:12.5px;
  letter-spacing:.09em;text-transform:uppercase;color:var(--ink);transition:border-color .2s,color .2s,background .2s;
}
.share-native[hidden]{display:none}
.share-list a:hover,.share-list button:hover{border-color:var(--gold);color:var(--gold);background:#fffdf9}
.share-list svg{width:16px;height:16px;fill:currentColor}
.post-back{display:inline-flex;align-items:center;gap:10px;margin-top:clamp(36px,4vw,52px);font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);text-decoration:none}
.post-back:hover{color:var(--gold)}

/* ---------- Blog ---------- */
.blog-page{padding:clamp(56px,7vw,96px) 0 clamp(64px,8vw,110px)}
.blog-page h1{font-size:clamp(40px,6vw,72px);letter-spacing:-.02em;line-height:1}
.blog-page .rule-sig{margin:26px 0 22px}
.blog-intro{font-family:var(--serif);font-size:clamp(18px,2.3vw,25px);color:var(--muted);margin:0 0 clamp(40px,5vw,62px);line-height:1.4}

.post-list{display:grid;gap:clamp(26px,3.4vw,44px);margin:0;padding:0;list-style:none}
.post-card{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);gap:clamp(22px,3vw,42px);
  background:#fff;border:1px solid var(--rule);padding:clamp(20px,2.4vw,30px);transition:border-color .25s,box-shadow .25s}
.post-card:hover{border-color:var(--gold-2);box-shadow:0 10px 30px rgba(14,43,69,.07)}
.post-thumb{display:block;aspect-ratio:16/9;background:#eef1f4;overflow:hidden}
.post-thumb img{width:100%;height:100%;object-fit:contain;display:block}
.post-body{display:flex;flex-direction:column;justify-content:center;min-width:0}
.post-date{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:0 0 10px}
.post-card h2{font-size:clamp(21px,2.4vw,28px);line-height:1.22;margin:0 0 14px}
.post-card h2 a{text-decoration:none;color:var(--ink);border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.post-card h2 a:hover{color:var(--gold);border-color:var(--gold)}
.post-teaser{font-size:16px;line-height:1.7;color:#33404d;margin:0 0 18px}
.post-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 22px;margin-top:4px}
.post-author{font-size:13.5px;color:var(--muted);margin:0}
.post-more{display:inline-flex;align-items:center;gap:9px;text-decoration:none;border:1px solid var(--rule);padding:10px 18px;font-family:var(--sans);font-size:12px;letter-spacing:.11em;text-transform:uppercase;font-weight:600;color:var(--ink);transition:border-color .2s,color .2s,background .2s}
.post-more:hover{border-color:var(--gold);color:var(--gold);background:#fffdf9}
.post-more svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.post-author strong{font-weight:600;color:var(--ink)}
@media(max-width:760px){
  .post-card{grid-template-columns:1fr;gap:18px}
}

.feed-hinweis{margin:clamp(30px,4vw,46px) 0 0;font-size:14.5px;color:var(--muted)}
.feed-hinweis a{display:inline-flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold-2);padding-bottom:2px;transition:color .2s,border-color .2s}
.feed-hinweis a:hover{color:var(--gold);border-color:var(--gold)}
.feed-hinweis svg{width:15px;height:15px;fill:currentColor;flex-shrink:0}

/* ---------- Einzelner Beitrag ---------- */
.article-page{padding:clamp(48px,6vw,84px) 0 clamp(56px,7vw,96px)}
.article-head{max-width:none}
.article-page h1{font-size:clamp(32px,4.6vw,56px);letter-spacing:-.018em;line-height:1.1;margin:0 0 16px}
.article-meta{font-size:13.5px;color:var(--muted);margin:0}
.article-meta strong{font-weight:600;color:var(--ink)}
.article-figure{margin:clamp(30px,4vw,48px) 0}
.article-figure .frame{aspect-ratio:16/9;background:#eef1f4;overflow:hidden}
.article-figure img{width:100%;height:100%;object-fit:contain;display:block}
.article-figure figcaption{margin-top:12px;font-size:13px;line-height:1.55;color:var(--muted);letter-spacing:.03em;border-left:2px solid var(--gold);padding-left:12px}
.article-body{max-width:none}
.article-body p{font-size:17px;line-height:1.78;color:#33404d;margin:0 0 1.2em}
.article-body ul{margin:0 0 1.3em;padding-left:2.4em}
.article-body li{font-size:17px;line-height:1.78;color:#33404d;padding:3px 0}
.article-body li::marker{color:var(--gold)}
.article-body h2{font-size:clamp(22px,2.6vw,30px);margin:44px 0 14px}

.share{margin-top:clamp(40px,5vw,64px);padding-top:26px;border-top:1px solid var(--rule)}
.share h2{font-family:var(--sans);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:0 0 16px}
.share-list{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:0;padding:0}
.share-list a,.share-list button{
  display:inline-flex;align-items:center;gap:9px;text-decoration:none;cursor:pointer;
  border:1px solid var(--rule);background:none;padding:11px 18px;font-family:var(--sans);
  font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);
  transition:border-color .2s,color .2s,background .2s}
.share-list a:hover,.share-list button:hover{border-color:var(--gold);color:var(--gold);background:#fffdf9}
.share-list svg{width:16px;height:16px;fill:currentColor;flex-shrink:0}
.share-hint{font-size:12.5px;color:var(--muted);margin:14px 0 0;min-height:1.2em}

.back-link{display:inline-flex;align-items:center;gap:9px;margin-top:clamp(36px,4vw,52px);
  font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--gold-2);padding-bottom:3px;transition:color .2s,border-color .2s}
.back-link:hover{color:var(--gold);border-color:var(--gold)}

/* ---------- Kopfband ---------- */
.band-hero{
  position:relative;display:flex;align-items:center;text-align:center;
  min-height:clamp(360px,31vw,580px);background-size:cover;background-repeat:no-repeat;
}
.band-hero::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,43,69,.90) 0%,rgba(14,43,69,.62) 48%,rgba(14,43,69,.92) 100%)}
.band-hero::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--gold)}
.band-hero .wrap{position:relative;z-index:1;padding-top:clamp(60px,9vw,110px);padding-bottom:clamp(60px,9vw,110px)}
.band-hero h1,.band-hero h2{color:#fff;font-size:clamp(40px,6vw,72px);letter-spacing:-.02em;max-width:none;line-height:1}
.band-hero .hr-gold{display:block;width:88px;height:2px;background:var(--gold);margin:clamp(22px,3vw,32px) auto;border:0}
.band-hero .sub{font-family:var(--serif);font-size:clamp(18px,2.5vw,27px);color:#ecdcc0;margin:0;line-height:1.35}
/* Impressum: Popocatepetl und Iztaccihuatl. Statt einer Mindesthoehe
   bestimmt das Seitenverhaeltnis die Bandhoehe. Dadurch wird das Band auf
   schmalen Schirmen flach statt schmal - der Text liegt weiterhin auf dem
   Bild und beide Vulkane bleiben sichtbar. */
.band-impressum{
  background-image:url("../media/impressum-header.jpg");background-image:image-set(url("../media/impressum-header.webp") type("image/webp"),url("../media/impressum-header.jpg") type("image/jpeg"));
  background-position:50% 50%;
  aspect-ratio:1800/675;
  min-height:0;
}
.band-impressum .wrap{padding-top:clamp(34px,4vw,70px);padding-bottom:clamp(34px,4vw,70px)}
/* ---------- Blog: durchgehendes Kopfbild, Gesicht rechts ----------
   Der Zuschnitt setzt das Gesicht auf 56-73% der Breite. Links davon liegt
   ruhiger, dunkler Hintergrund; der Verlauf verstaerkt ihn nur so weit,
   dass die Schrift sicher steht, und laeuft vor dem Gesicht aus. */
.blog-head{
  position:relative;display:flex;align-items:center;
  min-height:clamp(340px,30vw,480px);
  background-color:var(--ink);background-size:cover;background-position:68% 30%;
  background-image:url("../media/blog-portrait.jpg");
  background-image:image-set(url("../media/blog-portrait.webp") type("image/webp"),url("../media/blog-portrait.jpg") type("image/jpeg"));
}
.blog-head::before{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(14,43,69,.90) 0%,rgba(14,43,69,.78) 30%,rgba(14,43,69,.34) 54%,rgba(14,43,69,0) 76%)}
.blog-head::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--gold)}
.blog-head .wrap{position:relative;z-index:1;width:100%;padding-top:clamp(36px,4.5vw,64px);padding-bottom:clamp(36px,4.5vw,64px)}
.blog-head h1{color:#fff;font-size:clamp(38px,5.2vw,68px);line-height:1;letter-spacing:-.025em;margin:0}
.blog-head .hr-gold{display:block;width:78px;height:2px;background:var(--gold);border:0;margin:clamp(18px,2.4vw,28px) 0}
.blog-head .sub{font-family:var(--serif);font-size:clamp(17px,2.1vw,24px);color:#ecdcc0;margin:0;line-height:1.35;max-width:24ch}
@media(max-width:820px){
  .blog-head{min-height:380px;background-position:72% 22%;align-items:flex-end}
  .blog-head::before{background:linear-gradient(180deg,rgba(14,43,69,.06) 0%,rgba(14,43,69,.16) 38%,rgba(14,43,69,.52) 72%,rgba(14,43,69,.88) 100%)}
}

/* PGP und S/MIME: abstrakte Binaerdarstellung, kein Motiv das im Bild bleiben muss */
/* Datenschutz: Popocatepetl. Der Gipfel liegt im oberen Drittel; weil die
   Schneeflaeche hell ist, ist der Verlauf in der Mitte etwas dichter als
   bei den uebrigen Baendern. */
.band-datenschutz{
  background-image:url("../media/datenschutz-header.jpg");background-image:image-set(url("../media/datenschutz-header.webp") type("image/webp"),url("../media/datenschutz-header.jpg") type("image/jpeg"));
  background-position:40% 50%;
}
.band-datenschutz::before{background:linear-gradient(180deg,rgba(14,43,69,.86) 0%,rgba(14,43,69,.70) 48%,rgba(14,43,69,.92) 100%)}
/* Haftungsausschluss: Blick vom Hochland auf Puebla. Die Skyline liegt im
   oberen Drittel, der Text sitzt darunter ueber dem dunkleren Tal. */
.band-haftung{
  background-image:url("../media/haftung-header.jpg");background-image:image-set(url("../media/haftung-header.webp") type("image/webp"),url("../media/haftung-header.jpg") type("image/jpeg"));
  background-position:50% 50%;
}
.band-krypto{
  background-image:url("../media/krypto-header.jpg");background-image:image-set(url("../media/krypto-header.webp") type("image/webp"),url("../media/krypto-header.jpg") type("image/jpeg"));
  background-position:50% 50%;
}

/* ---------- 404 ---------- */
.notfound{padding:clamp(60px,8vw,120px) 0 clamp(68px,9vw,130px);text-align:center}
.nf-code{font-family:var(--serif);font-size:clamp(76px,14vw,168px);line-height:.88;color:var(--gold-2);margin:0 0 6px;letter-spacing:-.03em}
.notfound h1{font-size:clamp(28px,4.2vw,50px);letter-spacing:-.02em;margin:0}
.notfound .rule-sig{justify-content:center;margin:26px 0 24px}
.notfound .rule-sig i{max-width:88px;flex:0 0 88px}
.nf-text{font-size:17px;line-height:1.7;color:var(--muted);max-width:58ch;margin:0 auto 30px}
.nf-links{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;list-style:none;margin:0;padding:0}
.nf-links a{display:inline-flex;align-items:center;text-decoration:none;border:1px solid var(--rule);
  padding:12px 20px;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);
  transition:border-color .2s,color .2s,background .2s}
.nf-links a:hover{border-color:var(--gold);color:var(--gold);background:#fffdf9}
.nf-mail{margin:34px auto 0;font-size:15px}
.nf-mail a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold-2)}
.nf-mail a:hover{color:var(--gold);border-color:var(--gold)}

/* ---------- Schluesselseiten ---------- */
.key-table td:first-child{width:34%;font-family:var(--sans);font-size:15px;color:var(--muted)}
.key-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;letter-spacing:.02em;color:var(--ink)}
.legal-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;
  background:var(--paper-2);padding:2px 6px;border:1px solid var(--rule)}
.keyblock{margin:6px 0 1.6em;padding:20px;background:var(--paper-2);border:1px solid var(--rule);
  overflow-x:auto;font-size:12.5px;line-height:1.5}
.keyblock code{background:none;border:0;padding:0;font-size:inherit;white-space:pre}
