/*
Theme Name: SV Helpenstein
Theme URI: https://svhelpenstein.de
Author: SV Helpenstein e.V. 1991
Description: Individuelles WordPress-Theme für den SV Helpenstein e.V. 1991 – eine Seite mit Mannschaften, Spielplan, Sponsoren, Downloads und Vorstand & Kontakt. Auf Basis des mit dem Vorstand abgestimmten Mockups gebaut.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: svh-theme
*/

/* Selbstgehostete Schriften (Poppins/Inter) — keine Verbindung zu Google-Servern,
   passend zum datensparsamen Ansatz der Jugendseite. Dateien in assets/fonts/. */
@font-face{ font-family:'Poppins'; font-style:normal; font-weight:500; font-display:swap; src:url('assets/fonts/poppins-latin-500-normal.woff2') format('woff2'); }
@font-face{ font-family:'Poppins'; font-style:normal; font-weight:600; font-display:swap; src:url('assets/fonts/poppins-latin-600-normal.woff2') format('woff2'); }
@font-face{ font-family:'Poppins'; font-style:normal; font-weight:700; font-display:swap; src:url('assets/fonts/poppins-latin-700-normal.woff2') format('woff2'); }
@font-face{ font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap; src:url('assets/fonts/inter-latin-400-normal.woff2') format('woff2'); }
@font-face{ font-family:'Inter'; font-style:normal; font-weight:500; font-display:swap; src:url('assets/fonts/inter-latin-500-normal.woff2') format('woff2'); }
@font-face{ font-family:'Inter'; font-style:normal; font-weight:600; font-display:swap; src:url('assets/fonts/inter-latin-600-normal.woff2') format('woff2'); }
@font-face{ font-family:'Inter'; font-style:normal; font-weight:700; font-display:swap; src:url('assets/fonts/inter-latin-700-normal.woff2') format('woff2'); }

  :root{
    --red:#D32F37;
    --red-dark:#a82530;
    --red-tint:#fdeceb;
    --navy:#101b3f;
    --navy-2:#1c2c5c;
    --ink:#1b1b1e;
    --ink-soft:#5b5d67;
    --paper:#ffffff;
    --mist:#f6f6f4;
    --line:#ece9e5;
    --radius:18px;
    --radius-sm:12px;
    --shadow:0 10px 30px rgba(16,27,63,.07);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation:none !important; transition:none !important;} }

  /* Barrierefreiheit: Skip-Link & sr-only */
  .sr-only{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
    clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  .skip-link{
    position:absolute; left:-9999px; top:0; z-index:1000; background:var(--navy); color:#fff;
    padding:14px 22px; font-family:'Poppins',sans-serif; font-weight:600; font-size:14px; text-decoration:none;
    border-radius:0 0 10px 0;
  }
  .skip-link:focus{ left:0; }
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:'Inter',sans-serif; line-height:1.6; font-size:16px;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{ font-family:'Poppins',sans-serif; margin:0; color:var(--navy); font-weight:600; }
  a{color:inherit;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
  :focus-visible{outline:3px solid var(--red); outline-offset:3px;}


  header.site{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
  .nav-row{display:flex; align-items:center; justify-content:space-between; padding:14px 24px; gap:16px;}
  .brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
  .brand img{height:46px; width:auto;}
  .brand-name{font-family:'Poppins',sans-serif; font-weight:600; font-size:15px; line-height:1.2; color:var(--navy);}
  .brand-name small{display:block; font-family:'Inter',sans-serif; font-weight:400; font-size:11.5px; color:var(--ink-soft);}
  nav.main{display:flex; align-items:center; gap:6px;}
  nav.main a{
    font-family:'Inter',sans-serif; font-weight:500; font-size:14.5px;
    text-decoration:none; color:var(--ink); padding:9px 14px; border-radius:999px;
  }
  nav.main a:hover{background:var(--mist); color:var(--red);}
  nav.main a.pill{background:var(--red); color:#fff; margin-left:4px;}
  nav.main a.pill:hover{background:var(--red-dark); color:#fff;}
  .nav-toggle{display:none; background:none; border:0; font-size:26px; cursor:pointer; color:var(--navy);}
  @media (max-width:980px){
    nav.main{position:absolute; top:100%; left:0; right:0; background:#fff; flex-direction:column; align-items:stretch; gap:0; border-bottom:1px solid var(--line); max-height:0; overflow:hidden; transition:max-height .25s ease; padding:0 16px;}
    nav.main.open{max-height:600px; padding:10px 16px;}
    nav.main a{border-radius:10px; padding:12px 14px;}
    nav.main a.pill{margin-left:0; text-align:center; margin-top:4px;}
    .nav-toggle{display:block;}
  }

  /* hero */
  .hero{ padding:64px 0 0; background:linear-gradient(180deg, var(--red-tint), #fff 65%); }
  .hero-inner{display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center;}
  @media (max-width:900px){ .hero-inner{grid-template-columns:1fr; text-align:center;} .hero-badge{order:-1;} }
  .eyebrow{
    font-family:'Poppins',sans-serif; font-size:13px; font-weight:600; letter-spacing:.03em;
    color:var(--red); margin-bottom:16px; display:inline-flex; gap:8px; align-items:center;
    background:#fff; padding:7px 14px; border-radius:999px; box-shadow:var(--shadow);
  }
  .hero h1{ color:var(--navy); font-size:clamp(38px,5.5vw,58px); line-height:1.08; margin-bottom:18px; }
  .hero h1 span{color:var(--red);}
  .hero p.lead{font-size:18px; color:var(--ink-soft); max-width:46ch; margin-bottom:30px;}
  @media (max-width:900px){ .hero p.lead{margin-left:auto; margin-right:auto;} }
  .cta-row{display:flex; gap:14px; flex-wrap:wrap;}
  @media (max-width:900px){ .cta-row{justify-content:center;} }
  .btn{
    font-family:'Poppins',sans-serif; font-weight:600; font-size:14.5px;
    padding:14px 24px; text-decoration:none; display:inline-block; border:2px solid transparent; cursor:pointer;
    border-radius:999px;
  }
  .btn-primary{background:var(--red); color:#fff;}
  .btn-primary:hover{background:var(--red-dark);}
  .btn-ghost{border-color:var(--navy); color:var(--navy); background:#fff;}
  .btn-ghost:hover{background:var(--navy); color:#fff;}

  .hero-badge{ justify-self:center; width:min(300px,60vw); }
  .hero-badge img{filter:drop-shadow(0 16px 30px rgba(16,27,63,.18));}

  .stat-row{ margin:52px 0 0; }
  .stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; padding-bottom:56px;}
  @media (max-width:760px){ .stat-grid{grid-template-columns:repeat(2,1fr);} }
  .stat{ background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:22px 16px; text-align:center; }
  .stat b{display:block; font-family:'Poppins',sans-serif; font-size:28px; color:var(--red); line-height:1;}
  .stat span{font-size:12.5px; color:var(--ink-soft); font-weight:500;}

  section{padding:72px 0;}
  section.alt{background:var(--mist);}
  .kicker{
    font-family:'Poppins',sans-serif; color:var(--red); font-size:13px; font-weight:600; letter-spacing:.03em;
    margin-bottom:10px; display:block;
  }
  .section-head{max-width:640px; margin-bottom:44px;}
  .section-head h2{font-size:clamp(26px,3.6vw,36px); margin-bottom:12px;}
  .section-head p{color:var(--ink-soft); font-size:16px;}

  /* history */
  .origin-story{ background:var(--red-tint); border-radius:var(--radius); padding:26px 28px; margin-bottom:28px; }
  .origin-story p{margin:0 0 12px; color:var(--ink); font-size:15px; line-height:1.65;}
  .origin-story p:last-child{margin-bottom:0;}
  .origin-story strong{color:var(--red-dark);}
  .timeline-wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
  @media (max-width:900px){ .timeline-wrap{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .timeline-wrap{grid-template-columns:1fr;} }
  .tl-item{ background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:20px; }
  .tl-item b{font-family:'Poppins',sans-serif; color:var(--red); font-size:24px; display:block;}
  .tl-item span{font-size:13.5px; color:var(--ink-soft); display:block; margin-top:6px;}
  .tl-note{font-size:13px; color:var(--ink-soft); margin-top:20px;}
  .tl-note a{color:var(--red); font-weight:600; text-decoration:none;}

  /* teams */
  .team-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
  @media (max-width:760px){ .team-grid{grid-template-columns:1fr;} }
  .team-card{ background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:30px; }
  .team-top{display:flex; align-items:center; gap:16px; margin-bottom:16px;}
  .team-badge{
    width:56px; height:56px; border-radius:50%; background:var(--red); color:#fff;
    display:flex; align-items:center; justify-content:center; font-family:'Poppins',sans-serif; font-size:24px; font-weight:700;
    flex-shrink:0;
  }
  .team-card h3{font-size:21px; margin-bottom:3px;}
  .team-tag{font-size:12.5px; font-weight:600; color:var(--red);}
  .team-card p{color:var(--ink-soft); font-size:14.5px; margin:0 0 18px;}
  .team-meta{list-style:none; margin:0 0 18px; padding:0; font-size:14px;}
  .team-meta li{display:flex; justify-content:space-between; padding:9px 0; border-top:1px solid var(--line);}
  .team-meta li span:first-child{color:var(--ink-soft);}
  .team-card .btn{font-size:13px; padding:11px 18px; background:var(--navy); color:#fff;}

  .youth-callout{
    margin-top:26px; background:var(--navy); color:#fff; border-radius:var(--radius); padding:28px 30px; display:flex; align-items:center;
    justify-content:space-between; gap:20px; flex-wrap:wrap;
  }
  .youth-callout p{margin:0; color:#dfe2ee; font-size:15px;}
  .youth-callout strong{color:#fff; font-family:'Poppins',sans-serif; font-size:15.5px;}
  .youth-callout .btn-ghost{border-color:#ffffff55; color:#fff; background:transparent;}
  .youth-callout .btn-ghost:hover{background:#fff; color:var(--navy);}

  /* spielplan */
  .split{display:grid; grid-template-columns:.9fr 1.1fr; gap:24px;}
  @media (max-width:900px){ .split{grid-template-columns:1fr;} }
  .next-match{background:var(--navy); color:#fff; border-radius:var(--radius); padding:30px;}
  .next-match .kicker{color:#ffb3b7;}
  .match-row{display:flex; align-items:center; justify-content:space-between; margin:20px 0; font-family:'Poppins',sans-serif; font-size:18px;}
  .match-vs{color:#ff8f95; font-size:13px; font-weight:600;}
  .match-info{font-size:13.5px; color:#c7cbe0; border-top:1px solid #ffffff2a; padding-top:16px; display:flex; flex-direction:column; gap:6px;}
  .results-card{background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:8px 20px; overflow:hidden;}
  table.results{width:100%; border-collapse:collapse; font-size:14.5px;}
  table.results th{ font-family:'Poppins',sans-serif; font-size:12px; font-weight:600; text-align:left; padding:14px 8px 10px; color:var(--navy); }
  table.results td{padding:11px 8px; border-top:1px solid var(--line);}
  .res{font-weight:700; font-family:'Poppins',sans-serif;}
  .res.win{color:#1e7d3a;}
  .res.loss{color:var(--red);}
  .res.draw{color:var(--ink-soft);}
  .table-note{font-size:12.5px; color:var(--ink-soft); margin-top:14px;}

  /* sponsors */
  .sponsor-tiles{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
  @media (max-width:760px){ .sponsor-tiles{grid-template-columns:repeat(2,1fr);} }
  .sponsor-tile{
    position:relative; background:#fff; border-radius:var(--radius-sm); box-shadow:var(--shadow); height:124px; display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:5px; text-align:center; padding:16px 12px;
  }
  .sponsor-tile b{font-family:'Poppins',sans-serif; color:var(--navy); font-size:14px; font-weight:600; line-height:1.2;}
  .sponsor-tile .tile-sub{font-size:11.5px; color:var(--ink-soft);}
  .sponsor-tile.ghost{box-shadow:none; border:2px dashed #d7d4cf; color:var(--ink-soft);}
  a.sponsor-tile{text-decoration:none; color:inherit; cursor:pointer;}
  a.sponsor-tile:hover{transform:translateY(-2px);}
  .tile-badge{
    position:absolute; top:-11px; left:50%; transform:translateX(-50%); white-space:nowrap;
    background:var(--navy); color:#fff; font-family:'Poppins',sans-serif; font-size:10px; font-weight:600;
    letter-spacing:.02em; padding:4px 11px; border-radius:999px;
  }
  .sponsor-cta{
    margin-top:36px; background:var(--red); color:#fff; border-radius:var(--radius); padding:34px; display:grid; grid-template-columns:1.4fr .6fr; gap:24px; align-items:center;
  }
  @media (max-width:760px){ .sponsor-cta{grid-template-columns:1fr;} }
  .sponsor-cta h3{color:#fff; font-size:22px; margin-bottom:8px;}
  .sponsor-cta p{color:#ffe3e4; font-size:14.5px; margin:0;}
  .sponsor-cta .btn{background:#fff; color:var(--red); justify-self:start;}

  /* downloads */
  .dl-groups{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  @media (max-width:900px){ .dl-groups{grid-template-columns:1fr;} }
  .dl-group{background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:26px;}
  .dl-group h3{font-size:16.5px; margin-bottom:4px;}
  .dl-group .dl-desc{font-size:13px; color:var(--ink-soft); margin-bottom:18px;}
  .dl-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
  .dl-item{
    display:flex; align-items:center; gap:12px; padding:12px 14px; background:var(--mist); border-radius:var(--radius-sm);
  }
  .dl-icon{
    width:36px; height:36px; border-radius:10px; background:var(--red); color:#fff; flex-shrink:0;
    display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:700; font-family:'Poppins',sans-serif;
  }
  .dl-info{flex:1; min-width:0;}
  .dl-info b{display:block; font-size:13.5px; font-weight:600; color:var(--navy);}
  .dl-info span{font-size:11.5px; color:var(--ink-soft);}
  .dl-item a{
    font-size:12.5px; font-weight:600; color:var(--red); text-decoration:none; white-space:nowrap;
    border:1.5px solid var(--red); padding:6px 12px; border-radius:999px;
  }
  .dl-item a:hover{background:var(--red); color:#fff;}
  .dl-demo-note{grid-column:1/-1; font-size:12.5px; color:var(--ink-soft); text-align:center; margin-top:-4px;}

  /* vorstand */
  .board-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:44px;}
  @media (max-width:900px){ .board-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:520px){ .board-grid{grid-template-columns:1fr;} }
  .board-card{background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:20px; text-align:center;}
  .board-avatar{
    width:58px; height:58px; border-radius:50%; margin:0 auto 12px; background:var(--mist);
    border:2px dashed #cfcdc8; display:flex; align-items:center; justify-content:center;
    font-family:'Poppins',sans-serif; color:var(--ink-soft); font-size:16px; font-weight:600;
  }
  .board-card .role{font-family:'Poppins',sans-serif; color:var(--red); font-size:11.5px; font-weight:600; display:block; margin-bottom:6px;}
  .board-card .name{font-weight:600; font-size:14.5px; margin-bottom:6px; display:block;}
  .board-card .mail{font-size:12px; color:var(--ink-soft); word-break:break-all;}

  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:36px;}
  @media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} }
  .addr-block{margin-bottom:24px; background:#fff; border-radius:var(--radius-sm); box-shadow:var(--shadow); padding:18px 20px;}
  .addr-block h4{font-size:14.5px; margin-bottom:8px;}
  .addr-block p{margin:0; color:var(--ink-soft); font-size:14px;}
  .dept-list{list-style:none; margin:0; padding:0; font-size:14px; background:#fff; border-radius:var(--radius-sm); box-shadow:var(--shadow); overflow:hidden;}
  .dept-list li{display:flex; justify-content:space-between; padding:12px 18px; border-bottom:1px solid var(--line);}
  .dept-list li:last-child{border-bottom:0;}
  .dept-list li span:first-child{color:var(--ink-soft);}

  form.contact{display:flex; flex-direction:column; gap:14px; background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:26px;}
  form.contact input, form.contact select, form.contact textarea{
    font-family:'Inter',sans-serif; font-size:14.5px; padding:12px 14px; border:1.5px solid var(--line); background:var(--mist); border-radius:var(--radius-sm);
  }
  form.contact label{font-size:12.5px; font-weight:600; color:var(--ink-soft); margin-bottom:-8px;}
  form.contact button{align-self:flex-start;}
  .form-note{font-size:12px; color:var(--ink-soft); margin-top:-4px;}

  footer{background:var(--navy); color:#c7cbe0; padding:56px 0 28px; font-size:14px;}
  .foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; margin-bottom:36px;}
  @media (max-width:760px){ .foot-grid{grid-template-columns:1fr 1fr;} }
  footer h5{color:#fff; font-family:'Poppins',sans-serif; font-size:13px; margin-bottom:14px;}
  footer ul{list-style:none; margin:0; padding:0;}
  footer li{margin-bottom:9px;}
  footer a{text-decoration:none; color:#c7cbe0;}
  footer a:hover{color:#fff;}
  .foot-bottom{border-top:1px solid #ffffff22; padding-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12.5px; color:#9aa0c0;}

/* Förderungen-Sektion (unter dem Footer) */
.foerderungen-section{ background:var(--paper); padding:64px 0; }

/* Impressum/Datenschutz-Overlay */
.legal-modal{
  display:none; position:fixed; inset:0; z-index:200; background:rgba(16,27,63,.55);
  padding:24px; overflow-y:auto;
}
.legal-modal.open{ display:flex; align-items:flex-start; justify-content:center; }
.legal-modal-dialog{
  background:#fff; border-radius:var(--radius); max-width:760px; width:100%; margin:40px auto;
  padding:40px; position:relative; box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.legal-modal-close{
  position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:50%;
  border:1.5px solid var(--line); background:#fff; cursor:pointer; font-size:16px; color:var(--ink-soft);
}
.legal-modal-close:hover{ background:var(--mist); }
#svh-legal-modal-title{ margin-bottom:18px; padding-right:40px; }
.legal-modal-body{ font-size:15px; line-height:1.7; color:var(--ink); }
.legal-modal-body p{ margin:0 0 16px; }
.legal-modal-body h2, .legal-modal-body h3{ margin:24px 0 10px; }
@media (max-width:600px){
  .legal-modal-dialog{ padding:28px 20px; margin:16px auto; }
}

/* Aufklapp-Button für Sponsoren/Vorstand/Ehrenvorsitzende */
.tile-toggle-wrap{ text-align:center; margin:28px 0; }
.tile-toggle-btn{
  display:inline-flex; align-items:center; gap:8px; background:#fff; border:1.5px solid var(--red);
  border-radius:999px; padding:12px 22px; font-family:'Poppins',sans-serif; font-weight:600; font-size:14px;
  color:var(--red); cursor:pointer; box-shadow:var(--shadow);
}
.tile-toggle-btn:hover, .tile-toggle-btn.is-open{ background:var(--red); color:#fff; }
.tile-toggle-btn .chevron{ transition:transform .2s ease; font-size:12px; }
.tile-toggle-btn.is-open .chevron{ transform:rotate(180deg); }
.tile-extra{ margin-top:16px; }
.tile-extra[hidden]{ display:none; }

/* Ehrungen: Ehrenmitglieder (solides Gold) & Ehrenvorsitzende (Gold-Verlauf, eine Stufe höher) */
.board-card.tier-ehrenmitglied{ border:2px solid #C9A227; }
.board-card.tier-ehrenmitglied .tile-badge{
  position:relative; top:auto; left:auto; transform:none; display:inline-block;
  background:#C9A227; color:#fff; font-family:'Poppins',sans-serif; font-size:10px; font-weight:600;
  padding:4px 11px; border-radius:999px; margin-bottom:10px;
}

.board-card.tier-ehrenvorsitzender{
  border:3px solid transparent;
  border-radius:calc(var(--radius) - 1px);
  background-image:linear-gradient(#fff,#fff), linear-gradient(135deg,#8a6d1a,#f5d67d 35%,#fff6da 50%,#f5d67d 65%,#8a6d1a);
  background-origin:border-box; background-clip:padding-box, border-box;
  box-shadow:0 10px 26px rgba(201,162,39,.22);
}
.board-card.tier-ehrenvorsitzender .tile-badge{
  position:relative; top:auto; left:auto; transform:none; display:inline-block;
  background:linear-gradient(135deg,#8a6d1a,#f5d67d 50%,#8a6d1a); color:#3a2e08;
  font-family:'Poppins',sans-serif; font-size:10px; font-weight:700;
  padding:4px 11px; border-radius:999px; margin-bottom:10px;
}

/* Newsletter-Band im Footer */
.newsletter-band{ background:var(--red); }
.newsletter-inner{
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; padding:32px 24px;
}
.newsletter-inner h4{ color:#fff; font-size:19px; margin-bottom:4px; }
.newsletter-inner p{ color:#ffe3e4; font-size:14px; margin:0; max-width:46ch; }
.newsletter-msg{ color:#fff; font-size:14px; font-weight:600; max-width:38ch; }
.newsletter-form{ display:flex; gap:10px; flex-wrap:wrap; }
.newsletter-form input[type="text"], .newsletter-form input[type="email"]{
  font-family:'Inter',sans-serif; font-size:14px; padding:12px 16px; border:none; border-radius:999px;
  background:#fff; color:var(--ink);
}
.newsletter-form input[type="text"]{ width:140px; }
.newsletter-form input[type="email"]{ min-width:220px; flex:1; }
.newsletter-form button{
  font-family:'Poppins',sans-serif; font-weight:600; font-size:14px; padding:12px 22px; border-radius:999px;
  background:var(--navy); color:#fff; border:none; cursor:pointer; white-space:nowrap;
}
.newsletter-form button:hover{ background:#1c2c5c; }
@media (max-width:700px){ .newsletter-inner{ flex-direction:column; align-items:flex-start; } .newsletter-form{ width:100%; } .newsletter-form input[type="text"]{ width:100%; } .newsletter-form input[type="email"]{ width:100%; } }

/* Social-Icons im Footer */
.social-icons{ display:flex; gap:10px; margin-top:16px; }
.social-icons a{
  display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%;
  border:1.5px solid #3a4570; color:#fff; text-decoration:none; font-family:'Poppins',sans-serif;
  font-weight:700; font-size:12.5px;
}
.social-icons a:hover{ background:var(--red); border-color:var(--red); }

/* Kleine Social-Icons am Ende der Hauptnavigation (dezent, ergänzend zum Footer) */
.nav-social{ display:flex; gap:6px; margin-left:6px; }
.nav-social a{
  display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%;
  border:1.5px solid var(--line); color:var(--navy); text-decoration:none; font-family:'Poppins',sans-serif;
  font-weight:700; font-size:11px;
}
.nav-social a:hover{ background:var(--red); border-color:var(--red); color:#fff; }
@media (max-width:980px){ .nav-social{ margin:10px 0 6px 4px; } }

/* Kleinere Variante des Overlays fürs Newsletter-Popup */
.legal-modal-dialog.legal-modal-small{ max-width:420px; text-align:center; }
.legal-modal-dialog.legal-modal-small #svh-newsletter-modal-title{ padding-right:0; }
.legal-modal-dialog.legal-modal-small .legal-modal-body{ margin:0; }

/* newsletter-msg wird nicht mehr für die Statusanzeige gebraucht (läuft jetzt übers Popup),
   Klasse bleibt aus Kompatibilitätsgründen im CSS falls anderswo referenziert. */

/* Nach-oben-Button */
.back-to-top{
  position:fixed; right:20px; bottom:20px; width:46px; height:46px; border-radius:50%;
  background:var(--navy); color:#fff; border:none; font-size:20px; cursor:pointer; z-index:90;
  box-shadow:0 8px 20px rgba(16,27,63,.25); opacity:0; pointer-events:none; transform:translateY(10px);
  transition:opacity .2s ease, transform .2s ease;
}
.back-to-top.visible{ opacity:1; pointer-events:auto; transform:translateY(0); }
.back-to-top:hover{ background:var(--red); }
@media (prefers-reduced-motion: reduce){ .back-to-top{ transition:none; } }

/* Termine-Liste */
.termine-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.termin-item{
  display:flex; gap:20px; align-items:flex-start; background:#fff; border-radius:var(--radius-sm);
  box-shadow:var(--shadow); padding:20px 22px;
}
.termin-datum{
  flex-shrink:0; width:64px; text-align:center; background:var(--red-tint); border-radius:var(--radius-sm);
  padding:10px 4px;
}
.termin-tag{ display:block; font-family:'Poppins',sans-serif; font-size:24px; font-weight:700; color:var(--red); line-height:1; }
.termin-monat{ display:block; font-family:'Poppins',sans-serif; font-size:11px; font-weight:600; color:var(--navy); text-transform:uppercase; margin-top:4px; }
.termin-info h3{ font-size:16.5px; margin-bottom:6px; }
.termin-ort{ font-size:13px; color:var(--ink-soft); display:block; margin-bottom:6px; }
.termin-info p{ margin:0; font-size:14px; color:var(--ink-soft); }
@media (max-width:560px){ .termin-item{ gap:14px; padding:16px; } .termin-datum{ width:52px; } .termin-tag{ font-size:20px; } }

/* Galerie */
.galerie-album-titel{ font-size:17px; margin:32px 0 16px; }
.galerie-album-titel:first-of-type{ margin-top:8px; }
.galerie-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:8px; }
@media (max-width:900px){ .galerie-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:600px){ .galerie-grid{ grid-template-columns:repeat(2,1fr); } }
.galerie-item{
  position:relative; display:block; border-radius:var(--radius-sm); overflow:hidden; box-shadow:var(--shadow);
  aspect-ratio:4/3; cursor:pointer;
}
.galerie-item img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.galerie-item:hover img{ transform:scale(1.06); }
.galerie-caption{
  position:absolute; left:0; right:0; bottom:0; background:linear-gradient(transparent,rgba(16,27,63,.85));
  color:#fff; font-size:12px; padding:20px 10px 8px; opacity:0; transition:opacity .2s ease;
}
.galerie-item:hover .galerie-caption, .galerie-item:focus .galerie-caption{ opacity:1; }
@media (prefers-reduced-motion: reduce){ .galerie-item img{ transition:none; } .galerie-caption{ transition:none; } }

/* Lightbox */
.lightbox{
  display:none; position:fixed; inset:0; z-index:210; background:rgba(16,27,63,.92);
  align-items:center; justify-content:center; padding:40px 24px; flex-direction:column;
}
.lightbox.open{ display:flex; }
.lightbox img{ max-width:100%; max-height:78vh; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.4); }
.lightbox p{ color:#fff; margin-top:14px; font-size:14px; text-align:center; }
.lightbox-close{
  position:absolute; top:20px; right:24px; width:42px; height:42px; border-radius:50%; border:1.5px solid #ffffff55;
  background:transparent; color:#fff; font-size:18px; cursor:pointer;
}
.lightbox-close:hover{ background:#ffffff22; }
