/*
Theme Name: Hammerstein.de – Namensportal
Theme URI: https://hammerstein.de/
Author: Rolf Hammerstein
Description: WordPress-Theme based on the existing Hammerstein.de static HTML page. Prepared for WordPress and Novamira/ChatGPT MCP integration.
Version: 1.0.0
Text Domain: hammerstein
*/


.short-answer-image-wrap{display:flex;flex-direction:column;align-items:stretch;gap:7px}.image-source{font-size:.78rem;line-height:1.35;color:var(--muted);text-align:center}.image-source a{color:inherit;text-decoration:underline}.image-source a:hover{color:var(--accent)}

:root{--navy:#12304a;--blue:#1d4667;--gold:#d9a441;--accent:#9b2c2c;--cream:#f7f3ec;--text:#172033;--muted:#667085;--white:#fff;--line:#e7eaf0;--shadow:0 10px 30px rgba(18,48,74,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.6;background:#f7f3ec}a{color:var(--blue)}
.site-header{background:rgba(255,255,255,.96);color:var(--text);position:sticky;top:0;z-index:20;box-shadow:0 2px 18px rgba(18,48,74,.08);border-bottom:3px solid #ead9b5;backdrop-filter:blur(12px)}
.header-inner{max-width:1180px;margin:auto;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:1.35rem;font-weight:800;letter-spacing:.04em;color:var(--text)}.brand small{display:block;font-size:.74rem;font-weight:500;color:var(--muted);letter-spacing:.01em}.nav{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.nav a{position:relative;color:#475467;text-decoration:none;font-size:.9rem;font-weight:650;opacity:.96;padding:8px 12px;border:1px solid #e1e7ec;border-radius:9px;background:#fbfcfd;box-shadow:0 1px 2px rgba(18,48,74,.04);white-space:nowrap;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.nav a + a{margin-left:5px}.nav a + a::before{content:"";position:absolute;left:-8px;top:20%;height:60%;width:2px;border-radius:2px;background:#ead9b5}.nav a:hover,.nav a:focus{color:var(--accent);opacity:1;text-decoration:none;background:#fff7f7;border-color:rgba(155,44,44,.28);transform:translateY(-1px)}.nav a:focus{outline:3px solid rgba(155,44,44,.14);outline-offset:2px}
.hero{background:radial-gradient(1200px 600px at 85% -10%,rgba(217,164,65,.14),transparent 60%),linear-gradient(180deg,#fff 0%,var(--cream) 100%);border-bottom:1px solid #ead9b5;position:relative;overflow:hidden}.hero-inner{max-width:1180px;margin:auto;padding:84px 22px 78px;display:grid;grid-template-columns:1.25fr .75fr;gap:58px;align-items:center}.kicker{display:inline-flex;align-items:center;gap:8px;color:var(--navy);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;padding:6px 14px;border-radius:999px;background:rgba(217,164,65,.14);border:1px solid rgba(217,164,65,.35)}h1{font-family:Georgia,serif;color:var(--navy);font-size:clamp(2.5rem,5vw,4.4rem);line-height:1.08;letter-spacing:-.01em;margin:18px 0 22px}.lead{font-size:1.15rem;line-height:1.65;max-width:620px;color:#43515a}.hero-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.btn{display:inline-block;padding:13px 22px;border-radius:999px;text-decoration:none;font-weight:700;border:1px solid var(--accent);box-shadow:0 4px 12px rgba(155,44,44,.16);transition:transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(155,44,44,.24)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.secondary{background:#fff;color:var(--accent);border-color:var(--accent)}
.hero-card{background:#fff;border-radius:22px;padding:12px;box-shadow:0 8px 16px rgba(18,48,74,.08),0 24px 50px rgba(18,48,74,.18);border:1px solid #e7dfcf;position:relative;overflow:hidden}.hero-card img{width:100%;height:360px;object-fit:cover;object-position:center;border-radius:14px;display:block;transition:transform .5s ease}.hero-card:hover img{transform:scale(1.025)}.caption{font-size:.76rem;color:var(--muted);margin:12px 6px 2px;line-height:1.45}.caption a{color:inherit}
main{max-width:1180px;margin:auto;padding:56px 22px 80px}.section{margin:0 0 64px}.section h2{font-family:Georgia,serif;color:var(--navy);font-size:2rem;margin:0 0 12px}.major-section{position:relative;border-top:2px solid #ead9b5;padding-top:34px;margin-top:76px}.major-section:before{content:"";position:absolute;left:0;top:-2px;width:92px;height:3px;background:var(--accent);border-radius:0 3px 3px 0}.major-section h2{margin-top:0}#impressum.major-section{margin-top:24px;padding-top:30px}.section h3{color:var(--navy);margin:0 0 8px;font-size:1.18rem}.intro{font-size:1.08rem;max-width:900px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:24px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:24px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:23px;box-shadow:0 5px 18px rgba(0,0,0,.045)}.name-examples .card,#personen .card,#orte .card,#profil .card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease}.name-examples .card:hover,#personen .card:hover,#orte .card:hover,#profil .card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(16,24,40,.12);border-color:var(--accent2);background:linear-gradient(135deg,#fff7e6,#fbeeee)}.name-examples .card a,#personen .card a,#orte .card a,#profil .card a{display:inline-block;margin-top:10px;text-decoration:none;font-weight:700;color:var(--navy)}.name-examples .card a:hover,#personen .card a:hover,#orte .card a:hover,#profil .card a:hover{text-decoration:underline;color:var(--accent)}.card.highlight{border-top:4px solid var(--gold)}.card p:last-child{margin-bottom:0} .card .icon{font-size:1.6rem;margin-bottom:10px;width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:var(--icon-bg,#eef4f8);color:var(--icon-color,var(--navy));border:1px solid color-mix(in srgb,var(--icon-color,var(--navy)) 22%,#fff);box-shadow:0 5px 14px rgba(18,48,74,.08)}
.name-examples .card:nth-child(1){--icon-bg:#e8f1fb;--icon-color:#2563a8}
.name-examples .card:nth-child(2){--icon-bg:#f7edda;--icon-color:#a46a16}
.name-examples .card:nth-child(3){--icon-bg:#e8f4ea;--icon-color:#2d7a46}
.name-examples .card:nth-child(4){--icon-bg:#f0eafa;--icon-color:#7651a8}
.name-examples .card:nth-child(5){--icon-bg:#fff0e2;--icon-color:#c36b1b}
.name-examples .card:nth-child(6){--icon-bg:#f8e7e7;--icon-color:#a52e35}
.name-examples .card:nth-child(7){--icon-bg:#e9f1f5;--icon-color:#25617e}
.name-examples .card:nth-child(8){--icon-bg:#edf0e5;--icon-color:#5e7b32}
.name-examples .card:nth-child(9){--icon-bg:#e7f4ed;--icon-color:#2e7d5a}
.name-examples .card:nth-child(10){--icon-bg:#f5e8df;--icon-color:#8b4e2e}
.name-examples .card:nth-child(11){--icon-bg:#e8eef8;--icon-color:#3b5d9b}
.name-examples .card:nth-child(12){--icon-bg:#fbecdd;--icon-color:#a45b1c}
.name-examples .card:nth-child(13){--icon-bg:#e6f0f5;--icon-color:#2b6c8b}
.name-examples .card:nth-child(14){--icon-bg:#efe8f7;--icon-color:#714d9d}
.card .icon svg{width:30px;height:30px;stroke:currentColor;fill:none}

.timeline{position:relative;margin-top:28px;padding-left:28px;border-left:3px solid #d9c69d}.event{position:relative;margin:0 0 26px}.event:before{content:"";position:absolute;left:-37px;top:7px;width:13px;height:13px;border-radius:50%;background:var(--gold);border:3px solid #fff;box-shadow:0 0 0 2px #d9c69d}.date{font-weight:800;color:var(--gold);font-size:.88rem;text-transform:uppercase;letter-spacing:.06em}
.image-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:24px}.figure{margin:0;background:#fafafa;border:1px solid var(--line);border-radius:16px;overflow:hidden}.figure img{width:100%;height:310px;object-fit:contain;background:#fff;display:block}.figure figcaption{padding:12px 15px;font-size:.78rem;color:var(--muted);line-height:1.5}.figure figcaption strong{color:var(--text)}
.note{background:#f7f9fb;border-left:5px solid var(--accent);padding:19px 21px;border-radius:0 12px 12px 0;margin-top:22px}.note strong{color:var(--navy)}
#herkunft{background:linear-gradient(180deg,#fff,#fbfaf7);padding:42px 28px;border:1px solid #ebe7de;border-radius:20px}.section-label{display:inline-block;background:#eee5d2;color:#7b5b22;padding:5px 10px;border-radius:999px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:9px}
.featured{background:linear-gradient(135deg,var(--navy),var(--blue));color:#eef5fa;border-radius:20px;padding:30px;margin-top:25px}.featured h3{color:#fff}.featured a{color:#fff}.featured-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}.featured img{width:100%;height:260px;object-fit:cover;border-radius:13px}.featured .short-answer-rhein{object-position:center 42%;display:block}
.sources{background:linear-gradient(180deg,#f5f7fa,#eef1f5);border-top:1px solid var(--line);padding:30px 22px}.sources-inner{max-width:1180px;margin:auto}.sources h2{font-family:Georgia,serif;color:var(--navy);font-size:1.55rem}.sources ol{padding-left:20px}.sources li{margin-bottom:9px}.footer{background:linear-gradient(135deg,#eef2f5,#f7f3ec);color:var(--muted);border-top:4px solid var(--navy);padding:30px 22px}.footer-inner{max-width:1180px;margin:auto;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer a{color:var(--muted)}

/* Visuelle Karte der Hammerstein-Orte */
.hammerstein-map-wrap{margin-top:26px;background:linear-gradient(135deg,#f7f3ec,#eef4f7);border:1px solid #e7dfcf;border-radius:22px;overflow:hidden;box-shadow:0 14px 34px rgba(18,48,74,.10)}
.hammerstein-map-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:22px 26px 16px;background:rgba(255,255,255,.72);border-bottom:1px solid rgba(18,48,74,.08)}.hammerstein-map-head strong{display:block;font-size:1.2rem;color:var(--navy);margin-top:4px}.map-kicker{font-size:.72rem;font-weight:800;letter-spacing:.13em;color:var(--accent)}.map-note{font-size:.75rem;color:var(--muted);white-space:nowrap}.hammerstein-map{padding:8px 16px 2px}.hammerstein-map svg{display:block;width:100%;height:auto;max-height:510px}.map-land{fill:#fff;stroke:#cbd5df;stroke-width:3;stroke-linejoin:round}.map-region{fill:#edf2f5;stroke:#d7dee5;stroke-width:1.5}.map-river{fill:none;stroke:#b7d8e8;stroke-width:5;stroke-linecap:round;opacity:.9}.map-region-label{font-size:13px;font-weight:800;letter-spacing:.12em;fill:#a5afb8}.map-route{stroke:#d9a441;stroke-width:2;stroke-dasharray:6 7;opacity:.8}.map-pin circle:first-child{fill:var(--accent);stroke:#fff;stroke-width:4;transition:fill .2s ease}.map-pin .pin-core{fill:#fff;stroke:none}.map-pin text{font-size:14px;font-weight:800;fill:var(--navy);paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}.map-pin .pin-sub{font-size:11px;font-weight:500;fill:var(--muted)}.map-pin:hover circle:first-child,.map-pin:focus circle:first-child{transform:none;fill:var(--gold)}.map-pin a{text-decoration:none}.secondary-pin circle:first-child{fill:var(--blue);stroke-width:3}.secondary-pin text{font-size:11px}.secondary-pin .pin-sub{font-size:9px}.map-legend{display:flex;flex-wrap:wrap;gap:18px;padding:13px 26px 17px;background:rgba(255,255,255,.7);font-size:.76rem;color:var(--muted)}.map-legend span{display:inline-flex;align-items:center;gap:7px}.map-legend i{display:inline-block;width:10px;height:10px;border-radius:50%}.legend-main{background:var(--accent)}.legend-route{width:24px!important;height:2px!important;border-radius:0!important;background:var(--gold)}.map-place-cards{margin-top:24px}

/* Politische Karte mit festen, interaktiven Hammerstein-Markierungen */
.political-map{position:relative;margin-top:26px;background:#fff;border:1px solid #dfe5ea;border-radius:22px;overflow:hidden;box-shadow:0 14px 34px rgba(18,48,74,.10)}
.political-map-stage{position:relative;width:100%;background:#fff;line-height:0}
.political-map-stage img{display:block;width:100%;height:auto}
.political-map-overlay{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.map-marker{cursor:pointer;text-decoration:none}
.map-marker .marker-dot{fill:var(--accent);stroke:#fff;stroke-width:6}
.map-marker .marker-core{fill:#fff}
.map-marker .marker-label{font-size:16px;font-weight:800;fill:var(--navy);paint-order:stroke;stroke:#fff;stroke-width:6px;stroke-linejoin:round}
.map-marker .marker-sub{font-size:11px;font-weight:650;fill:#536273;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.map-marker:hover .marker-dot,.map-marker:focus .marker-dot{fill:var(--gold)}
.map-marker:focus{outline:none}
.map-marker:focus .marker-label,.map-marker:hover .marker-label{fill:var(--accent)}
.map-state-label{font-size:19px;font-weight:800;letter-spacing:.1em;fill:#7d8995;opacity:.62;paint-order:stroke;stroke:#fff;stroke-width:6px}
.map-card-head{padding:22px 26px 18px;background:linear-gradient(135deg,#f8fbfc,#f7f3ec);border-bottom:1px solid #e7eaee}
.map-card-head strong{display:block;font-size:1.22rem;color:var(--navy);margin-top:4px}.map-kicker{font-size:.72rem;font-weight:800;letter-spacing:.13em;color:var(--accent)}
.map-card-foot{display:flex;flex-wrap:wrap;gap:16px;padding:14px 26px 18px;background:#fbfcfd;font-size:.78rem;color:var(--muted)}
.map-card-foot span{display:inline-flex;align-items:center;gap:7px}.map-card-foot i{width:10px;height:10px;border-radius:50%;background:var(--accent);display:inline-block}.map-card-foot b{color:var(--navy)}
.icon svg{width:30px;height:30px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:850px){.map-marker .marker-label{font-size:16px;stroke-width:5px}.map-marker .marker-sub{font-size:14px;stroke-width:4px}.map-state-label{font-size:18px}.map-card-head,.map-card-foot{padding-left:20px;padding-right:20px}.political-map-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.political-map-stage{min-width:720px}}
@media(max-width:520px){.political-map{margin-top:18px;border-radius:16px}.map-card-head{padding:18px 18px 14px}.map-card-foot{padding:11px 18px 15px;gap:10px 15px}.political-map-stage{min-width:690px;margin-left:-27px}}

@media(max-width:850px){.site-header{position:sticky}.header-inner{align-items:flex-start;flex-direction:column}.hero-inner{grid-template-columns:1fr;padding-top:46px;padding-bottom:46px}.grid,.grid-3,.image-row,.featured-grid{grid-template-columns:1fr}.hero-card img{height:280px}.figure img{height:280px}main{padding-top:40px}.nav{gap:7px}.nav a{font-size:.88rem}.nav a + a{margin-left:2px}.nav a + a::before{height:45%;top:27.5%}.site-header{position:relative}}
@media(max-width:520px){.major-section{margin-top:54px;padding-top:26px}.major-section:before{width:70px}.hammerstein-map-head{padding:18px 18px 14px}.hammerstein-map{padding:5px 7px 0}.map-legend{padding:11px 18px 15px;gap:10px 15px}.map-pin text{font-size:11px}.map-pin .pin-sub{font-size:9px}.secondary-pin text{font-size:9px}.secondary-pin .pin-sub{font-size:8px}.map-region-label{font-size:10px}.map-place-cards{margin-top:18px}
.legal{padding-left:16px;padding-right:16px;margin-bottom:40px}.legal-card{padding:20px}.hero-inner,main{padding-left:16px;padding-right:16px}.hero{padding:0}.hero-inner{padding-top:34px;padding-bottom:34px}.hero-card{padding:10px;border-radius:18px}.hero-card img{height:230px}#herkunft{padding:28px 18px}.section{margin-bottom:48px}.section h2{font-size:1.75rem}}
.profile-card .portrait{width:min(100%,250px);height:auto;aspect-ratio:auto;object-fit:contain;border-radius:18px;display:block;margin:0 auto 20px;box-shadow:0 8px 24px rgba(0,0,0,.14)}
.legal{max-width:1180px;margin:0 auto 64px;padding:0 22px}.legal h2{font-family:Georgia,serif;color:var(--navy);font-size:2rem;margin:0 0 12px}.legal-card{width:100%;max-width:100%;margin:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow);text-align:left}.legal-card p{margin:0 0 18px}.legal-card h3{color:var(--navy);margin:22px 0 8px}.legal-card a{overflow-wrap:anywhere}
/* Mouse-Over für die Kästen unter „Rolf Hammerstein“ */
#profil .card{transition:background-color .25s ease,color .25s ease,transform .25s ease,box-shadow .25s ease}#profil .card:hover{background:var(--accent);color:#fff;transform:translateY(-5px);box-shadow:0 14px 30px rgba(155,44,44,.22)}#profil .card:hover h3,#profil .card:hover p,#profil .card:hover a{color:#fff}#profil .card:hover a{text-decoration:underline}
/* Responsive Feinschliff: keine horizontale Überbreite auf kleinen Bildschirmen */
html,body{max-width:100%;overflow-x:hidden}
img{max-width:100%}
@media(max-width:850px){
  .header-inner{padding:14px 16px;gap:10px}
  .nav{width:100%;gap:6px 8px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;padding-bottom:3px;-webkit-overflow-scrolling:touch}
  .nav a{font-size:.86rem;padding:6px 8px;flex:0 0 auto}
  .hero-inner{gap:38px}
  .hero-card img{height:auto;max-height:320px;object-fit:contain}
  .figure img{height:auto;max-height:320px}
}
@media(max-width:520px){
  .header-inner{padding:12px 14px}
  .brand{font-size:1.18rem}
  .brand small{font-size:.68rem}
  .nav{margin-left:-2px;margin-right:-2px;flex-wrap:wrap;overflow:visible;gap:6px;padding-bottom:0}
  .nav a{font-size:.78rem;padding:7px 6px}
  .nav a + a{margin-left:0}
  .nav a + a::before{display:none}
  .hero-inner{padding-left:16px;padding-right:16px;gap:28px}
  h1{font-size:clamp(2.25rem,12vw,3.1rem)}
  .lead{font-size:1.05rem}
  .hero-links{flex-direction:column;align-items:stretch}
  .btn{text-align:center}
  main{padding-left:16px;padding-right:16px}
  #herkunft{padding:24px 16px}
  .card,.legal-card{padding:20px}
  .featured{padding:22px}
  .sources{padding-left:16px;padding-right:16px}
  .footer{padding-left:16px;padding-right:16px}
}


