/* NaturFreunde Essen Designsystem 1.6
   Gemeinsame Sprache für Seitentypen. Nur Darstellung – keine Fachlogik. */

/* ---------- Grundrhythmus öffentlicher Seiten ---------- */
body.nfe-designsystem main :is(.section,.nfe-contact-section,.nfe-chronik-section,.nfhmod-section,.nfe-home-events,.nfe-home-now,.nfe-home-history,.nfe-home-house,.nfe-home-engagement,.nfe-home-people,.nfe-home-newsletter,.nfe-home-membership){
  padding-block:clamp(44px,6vw,78px);
}
body.nfe-designsystem main :is(.wrap,.nfe-home-wrap,.nfe-contact-wrap,.nfe-chronik-wrap,.nfhmod-wrap,.nfjmod-wrap,.nfe-about-wrap,.nfhp-shell){
  width:min(var(--nfe-content),92%);
  max-width:var(--nfe-content);
  margin-inline:auto;
}
body.nfe-designsystem main :is(.section-title,.nfe-home-head,.nfe-contact-sectionhead,.nfe-chronik-head,.nfhmod-head){
  margin-bottom:clamp(22px,3vw,36px);
}
body.nfe-designsystem main :is(.section-title,.nfe-home-head,.nfe-contact-sectionhead,.nfe-chronik-head,.nfhmod-head) h2{
  margin:.18em 0 0;
}
body.nfe-designsystem main :is(.section-title,.nfe-contact-sectionhead,.nfe-chronik-head,.nfhmod-head) p{
  color:var(--nfe-text-soft);
}

/* ---------- Gemeinsame Kartenfamilie ---------- */
body.nfe-designsystem main :is(
 .quick-action,.highlight,.nf-district-hub-card,.person-card,
 .nfe-home-news-card,.nfe-home-membership-card,.nfe-home-house-card,.nfe-surprise-card,
 .nfe-contact-topic,.nfe-contact-form-card,.nfe-contact-hero-panel,
 .nfe-chronik-entry-grid>a,.nfe-chronik-group-grid>article,.nfe-chronik-source-grid>article,
 .nfhp-profile,.nfhp-picker,.nfhp-source,.nfhmod-card
){
  border:1px solid var(--nfe-border)!important;
  border-radius:var(--nfe-radius)!important;
  box-shadow:var(--nfe-shadow-sm)!important;
}
body.nfe-designsystem main :is(.quick-action,.nf-district-hub-card,.person-card,.nfe-home-news-card,.nfe-chronik-entry-grid>a){
  transition:transform var(--nfe-transition),box-shadow var(--nfe-transition),border-color var(--nfe-transition);
}
body.nfe-designsystem main :is(.quick-action,.nf-district-hub-card,.person-card,.nfe-home-news-card,.nfe-chronik-entry-grid>a):hover{
  transform:translateY(-2px);
  border-color:var(--nfe-border-strong)!important;
  box-shadow:var(--nfe-shadow)!important;
}

/* ---------- Buttons: gleiche Form statt Plugin-Mix ---------- */
body.nfe-designsystem main :is(
 .btn,.text-link,.quick-action,.nfhp-action,.nfhp-footer-note a,
 .nfe-stage-open,.nfe-home-all,.nfe-contact-hero-actions a,.nfe-contact-jumpbar a,
 .nf7-event-actions a,.nf7-share-actions button,.nf7-share-actions a,.nf7-qr-actions button,
 .nf7-event-register-primary,.nf7-calendar-btn
){
  border-radius:999px!important;
}
body.nfe-designsystem main .text-link{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-weight:800;
  color:var(--nfe-brand-green);
  text-decoration:none;
}

/* ---------- Bezirksgruppen / Fachbereichsartige Seiten ---------- */
body.nfe-designsystem :is(.nf-district-hub,.nfe-view-bezirksgruppe-west,.nfe-view-bezirksgruppe-baldeney,.nfe-view-bezirksgruppe-ruhrhalbinsel) .intro-grid,
body.nfe-designsystem main .intro-grid{
  gap:clamp(24px,4vw,46px);
  align-items:start;
}
body.nfe-designsystem main .quick-actions{
  gap:12px;
}
body.nfe-designsystem main .quick-action{
  background:#fff!important;
  color:var(--nfe-text)!important;
  padding:18px 20px!important;
}
body.nfe-designsystem main .highlight{
  background:var(--nfe-bg-soft)!important;
  padding:clamp(20px,3vw,30px)!important;
}
body.nfe-designsystem main .quote{
  border-left:4px solid var(--nfe-brand-red)!important;
  border-radius:0 var(--nfe-radius-sm) var(--nfe-radius-sm) 0!important;
}
body.nfe-designsystem .nf-district-hub-grid{
  gap:18px!important;
}
body.nfe-designsystem .nf-district-hub-card{
  overflow:hidden;
  background:#fff!important;
}
body.nfe-designsystem .nf-district-hub-note{
  border-radius:var(--nfe-radius)!important;
  background:var(--nfe-bg-soft)!important;
  border:1px solid var(--nfe-border)!important;
}

/* ---------- Menschen unserer Geschichte ---------- */
body.nfe-designsystem .nfhp-shell{
  max-width:var(--nfe-content)!important;
  padding:clamp(34px,5vw,62px) 0 clamp(54px,7vw,84px)!important;
}
body.nfe-designsystem .nfhp-toolbar{
  margin-bottom:28px!important;
}
body.nfe-designsystem .nfhp-search{
  border-color:var(--nfe-border)!important;
  border-radius:999px!important;
  box-shadow:none!important;
}
body.nfe-designsystem .nfhp-picker{
  border-radius:var(--nfe-radius)!important;
  padding:10px!important;
}
body.nfe-designsystem .nfhp-person-link{
  border-radius:var(--nfe-radius-sm)!important;
}
body.nfe-designsystem .nfhp-person-link.is-active{
  background:var(--nfe-brand-green)!important;
}
body.nfe-designsystem .nfhp-profile{
  border-radius:var(--nfe-radius-lg)!important;
}
body.nfe-designsystem .nfhp-profile-hero{
  background:linear-gradient(135deg,var(--nfe-bg-soft),#fff 62%)!important;
}
body.nfe-designsystem .nfhp-years,
body.nfe-designsystem .nfhp-section-label{
  color:var(--nfe-brand-red)!important;
}
body.nfe-designsystem .nfhp-profile-head h1{
  color:var(--nfe-text)!important;
}
body.nfe-designsystem .nfhp-tags span{
  background:var(--nfe-brand-green-soft)!important;
  color:var(--nfe-brand-green)!important;
  border-color:var(--nfe-border)!important;
}
body.nfe-designsystem .nfhp-action.primary{
  background:var(--nfe-brand-green)!important;
}
body.nfe-designsystem .nfhp-action.secondary,
body.nfe-designsystem .nfhp-nav a{
  border-color:var(--nfe-border)!important;
}
body.nfe-designsystem .nfhp-life-stations{
  border-color:var(--nfe-border)!important;
  border-radius:var(--nfe-radius)!important;
  box-shadow:var(--nfe-shadow-sm);
}
body.nfe-designsystem .nfhp-footer-note{
  border-radius:var(--nfe-radius)!important;
  background:var(--nfe-brand-green-strong)!important;
}

/* ---------- Termine: Übersicht und Einzelveranstaltung ---------- */
body.nfe-designsystem .nfe-event-stage,
body.nfe-designsystem .nfe-stage-panel,
body.nfe-designsystem .nfe-stage-selector,
body.nfe-designsystem .nf7-event-single-top,
body.nfe-designsystem .nf7-event-register-panel{
  border-radius:var(--nfe-radius-lg)!important;
}
body.nfe-designsystem .nfe-stage-panel{
  overflow:hidden;
  border:1px solid var(--nfe-border)!important;
  box-shadow:var(--nfe-shadow)!important;
}
body.nfe-designsystem .nfe-stage-selector{
  gap:8px!important;
}
body.nfe-designsystem .nfe-stage-tab{
  border-radius:var(--nfe-radius-sm)!important;
  border-color:var(--nfe-border)!important;
}
body.nfe-designsystem .nfe-stage-tab.active{
  border-color:var(--nfe-brand-green)!important;
  box-shadow:0 0 0 2px rgba(36,93,45,.09)!important;
}
body.nfe-designsystem .nfe-event-filters button{
  border-radius:999px!important;
  min-height:38px!important;
}

body.nfe-designsystem .nf7-event-single{
  background:var(--nfe-bg-soft)!important;
  padding-block:clamp(34px,5vw,70px)!important;
}
body.nfe-designsystem .nf7-event-single>.wrap{
  width:min(var(--nfe-content),92%)!important;
  max-width:var(--nfe-content)!important;
}
body.nfe-designsystem .nf7-event-single-top{
  background:#fff!important;
  border:1px solid var(--nfe-border)!important;
  box-shadow:var(--nfe-shadow)!important;
  overflow:hidden;
}
body.nfe-designsystem .nf7-event-single-main{
  padding:clamp(24px,4vw,46px)!important;
}
body.nfe-designsystem .nf10-event-visual{
  border-radius:var(--nfe-radius)!important;
  overflow:hidden;
}
body.nfe-designsystem .nf7-event-single h2{
  font-size:clamp(2rem,4.2vw,3.7rem)!important;
  line-height:1.03!important;
  margin:.25em 0 .32em!important;
}
body.nfe-designsystem .nf7-event-lead{
  color:var(--nfe-text-soft)!important;
  font-size:clamp(1rem,1.6vw,1.15rem)!important;
}
body.nfe-designsystem .nf7-event-meta{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:24px!important;
}
body.nfe-designsystem .nf7-event-meta>div{
  border:1px solid var(--nfe-border)!important;
  background:var(--nfe-bg-soft)!important;
  border-radius:var(--nfe-radius-sm)!important;
  padding:13px 14px!important;
}
body.nfe-designsystem .nf7-event-meta span{
  color:var(--nfe-text-soft)!important;
  font-size:.72rem!important;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:800;
}
body.nfe-designsystem .nf7-event-share{
  background:var(--nfe-brand-green-strong)!important;
  color:#fff!important;
  padding:clamp(24px,3vw,34px)!important;
}
body.nfe-designsystem .nf7-event-share :is(h3,p,.nf7-kicker){color:#fff!important}
body.nfe-designsystem .nf7-share-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
}
body.nfe-designsystem .nf7-share-actions :is(button,a){
  min-height:40px!important;
  padding:9px 13px!important;
  border:1px solid rgba(255,255,255,.3)!important;
}
body.nfe-designsystem .nf7-event-register-panel{
  margin-top:20px!important;
  border:1px solid var(--nfe-border)!important;
  background:#fff!important;
  box-shadow:var(--nfe-shadow-sm)!important;
  overflow:hidden;
}
body.nfe-designsystem .nf7-event-register-copy,
body.nfe-designsystem .nf7-event-register-form{
  padding:clamp(22px,3vw,34px)!important;
}

/* ---------- Kontakt / Über uns / Haus / Jugend / Chronik ---------- */
body.nfe-designsystem :is(.nfe-contact-hero,.nfe-chronik-hero,.nfhmod-hero,.nfjmod-hero,.nfe-about-hero){
  border-bottom:1px solid rgba(255,255,255,.12);
}
body.nfe-designsystem :is(.nfe-contact-jumpbar,.nfhmod-nav){
  border-block:1px solid var(--nfe-border)!important;
  background:#fff!important;
  box-shadow:none!important;
}
body.nfe-designsystem .nfe-contact-topic-grid,
body.nfe-designsystem .nfe-chronik-entry-grid,
body.nfe-designsystem .nfe-chronik-group-grid,
body.nfe-designsystem .nfe-chronik-source-grid{
  gap:16px!important;
}
body.nfe-designsystem .nfe-chronik-rail article{
  border-radius:var(--nfe-radius)!important;
  border:1px solid var(--nfe-border)!important;
  box-shadow:var(--nfe-shadow-sm)!important;
}
body.nfe-designsystem .nfe-chronik-research-note{
  border-radius:var(--nfe-radius)!important;
  border:1px solid var(--nfe-border)!important;
}

/* ---------- Vorstand / Gremien ---------- */
body.nfe-designsystem .people-grid,
body.nfe-designsystem .nf7-board-grid{
  gap:16px!important;
}
body.nfe-designsystem .person-card{
  overflow:hidden;
  background:#fff!important;
}

/* ---------- Responsive Harmonisierung ---------- */
@media(max-width:900px){
  body.nfe-designsystem .nf7-event-single-top{display:block!important}
  body.nfe-designsystem .nf7-event-share{border-radius:0!important}
  body.nfe-designsystem .nfhp-layout{gap:18px!important}
}
@media(max-width:640px){
  body.nfe-designsystem main :is(.wrap,.nfe-home-wrap,.nfe-contact-wrap,.nfe-chronik-wrap,.nfhmod-wrap,.nfjmod-wrap,.nfe-about-wrap,.nfhp-shell){width:min(94%,var(--nfe-content))}
  body.nfe-designsystem .nf7-event-meta{grid-template-columns:1fr!important}
  body.nfe-designsystem .nf7-event-actions{display:grid!important}
  body.nfe-designsystem .nf7-event-actions a{width:100%!important;justify-content:center!important}
  body.nfe-designsystem .nf7-share-actions{display:grid!important}
  body.nfe-designsystem .nf7-share-actions :is(button,a){width:100%!important;justify-content:center!important;text-align:center!important}
  body.nfe-designsystem .nfhp-profile-head,
  body.nfe-designsystem .nfhp-content{padding:22px!important}
}
