/* ===== KAPSELUNG FÜR KONTAKTSEITE =====
   - Inhalt der Seite in <div class="kontakt-scope"> ... </div> wrappen.
   - Buttongrößen & Abstände über lokale CSS-Variablen steuerbar.
*/
.kontakt-scope{
  --pill-font-size: 15px;
  --pill-pad-y: 8px;
  --pill-pad-x: 12px;
  --pill-radius: 9999px;
  --pill-line-height: 1.2;
}

.kontakt-scope .pill{
  font-size: var(--pill-font-size);
  padding: var(--pill-pad-y) var(--pill-pad-x);
  border-radius: var(--pill-radius);
  line-height: var(--pill-line-height);
}

@media (max-width:420px){
  .kontakt-scope{
    --pill-font-size: 14px;
    --pill-pad-y: 7px;
    --pill-pad-x: 10px;
  }
}

/* ===== ENDE KAPSELUNG / VARIABLEN ===== */



:root{
  --ink:#0f172a; --muted:#475569;
  --brand:#ea580c; --brand-700:#c2410c;
  --apricot-25:#fffaf5; --apricot-50:#fff7ef; --apricot-100:#ffe7d4;
  --line:#efe5dc; --paper:#ffffff;
  --radius:18px; --max:1120px; --gap:28px; --pad:54px;
  --shadow-sm:0 6px 16px rgba(16,24,40,.06);
  --shadow:0 14px 40px rgba(234,88,12,.12), 0 4px 12px rgba(0,0,0,.06);
  --shadow-lg:0 26px 70px rgba(234,88,12,.18), 0 10px 22px rgba(0,0,0,.08);
}

body{
  margin:0;
  color:var(--ink);
  font-family:Inter,system-ui,Segoe UI,Roboto,Arial;
  background:#fff;
}

a{ color:var(--brand); text-decoration:none; }
p{ line-height:1.65; }

.wrap {
  max-width: var(--max);
  margin: 0 auto;
  padding-left: 1rem;
  padding-right: 1rem;
  width: 100%;
  box-sizing: border-box;
}

/* --------------------------------
   HERO
--------------------------------- */

@media (min-width: 1200px){
  body{ background:#fff; }
  /* kein separater Hero-Background nötig */
}

.hero-inner{
  max-width: var(--max);
  margin: 0 auto;
  padding:90px 1rem 56px;
  text-align:center;
}

.eyebrow{
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.06em;
  color:#7b8794;
  text-transform:uppercase;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:.4rem;
}

.badge-hero{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 14px;
  border-radius:999px;
  background:linear-gradient(180deg,#fff 0%, #fff7ef 100%);
  border:1px solid var(--line);
  box-shadow:0 10px 28px rgba(234,88,12,.18), 0 3px 10px rgba(0,0,0,.06);
  color:#5b6775;
  font-weight:800;
  font-size:.9rem;
  letter-spacing:.02em;
  max-width:100%;
  flex-wrap:wrap;
  min-width:0;
}

.badge-hero:before{
  content:"";
  width:10px; height:10px;
  border-radius:999px;
  background:var(--brand);
  box-shadow:0 0 0 3px rgba(234,88,12,.12);
}

h1{
  margin:.35em 0 .25em;
  font-size:clamp(34px,5vw,58px);
  color:var(--brand);
  letter-spacing:-.012em;
  font-weight:900;
  overflow-wrap:break-word;
  word-break:break-word;
  hyphens:auto;
}

.lead{
  max-width:760px;
  margin:10px auto 0;
  color:var(--muted);
  font-weight:600;
  overflow-wrap:break-word;
  word-break:break-word;
  hyphens:auto;
}

/* --------------------------------
   Sections
--------------------------------- */
.section{ padding:var(--pad) 0; }
.section-head{ text-align:center; margin:0 0 18px; }
.section-head h2{
  margin:0;
  font-size:clamp(22px,2.4vw,32px);
  color:var(--ink);
  font-weight:900;
}
.accent{
  display:inline-block;
  width:74px; height:3px;
  background:var(--brand);
  border-radius:3px;
  margin:12px auto 0;
}

/* --------------------------------
   Grid + Cards
--------------------------------- */
.grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:var(--gap);
}
@media (max-width:980px){
  .grid{ grid-template-columns:1fr; }
}

.card{
  background:var(--paper);
  border:1px solid var(--apricot-100);
  border-radius:var(--radius);
  padding:24px;
  box-shadow:var(--shadow);
  transition:transform .2s ease, box-shadow .2s ease;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  contain: paint;
  transform-origin: center;
}

.card h3{
  margin:0 0 14px;
  font-size:20px;
  color:var(--ink);
  text-align:center;
}
.meta{ margin-top:8px; color:var(--muted); }

/* --------------------------------
   Pills & Icons (Buttons)
--------------------------------- */
.kontakt-scope .pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;                 /* Basis */
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-weight:800;
  box-shadow:var(--shadow-sm);
  transition:.2s;
  max-width:100%;
  flex-wrap:wrap;
  -webkit-appearance:none;
  appearance:none;
  line-height:1.2;
}
.kontakt-scope .pill.primary{
  background:linear-gradient(180deg,var(--brand) 0%, var(--brand-700) 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:var(--shadow);
}
.kontakt-scope .pill:hover{ transform:translateY(-2px); }
.kontakt-scope .pill:focus-visible, .icon:focus-visible{
  outline:3px solid rgba(234,88,12,.35);
  outline-offset:2px;
  border-radius:999px;
}

/* Kompakter & edler nur im Kontakt-Kontext */
.section .card .kontakt-scope .pill,
#map .kontakt-scope .pill{
  font-weight:700;
  border-radius:14px;
  font-size:clamp(.82rem, 2.6vw, .95rem);
  padding:clamp(6px, 1.6vw, 10px) clamp(10px, 2.4vw, 14px);
  box-shadow:var(--shadow-sm);
}
.section .card .kontakt-scope .pill.primary,
#map .kontakt-scope .pill.primary{
  box-shadow:var(--shadow-sm);
}

/* sehr kleine Phones */
@media (max-width:420px){
  .section .card .kontakt-scope .pill,
  #map .kontakt-scope .pill{
    font-size:.8rem;
    padding:6px 10px;
    border-radius:12px;
  }
}

/* --------------------------------
   Icons
--------------------------------- */
.icon-row{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.icon{
  width:44px; height:44px;
  border-radius:999px;
  border:1px solid var(--line);
  display:grid; place-items:center;
  background:#fff;
  box-shadow:var(--shadow-sm);
  transition:.2s;
}
.icon:hover{ background:var(--apricot-25); }
.icon svg{ width:20px; height:20px; color:var(--brand); }

/* --------------------------------
   Hours
--------------------------------- */
.hours{ list-style:none; margin:0; padding:0; }
.hours li{ display:flex; gap:8px; align-items:center; padding:10px 0; }
.hours svg{ width:18px; height:18px; color:var(--brand); flex-shrink:0; }
.leaders{ display:flex; align-items:center; width:100%; }
.leaders .label{ font-weight:700; }
.leaders .dots{ flex:1; border-bottom:1px dotted #e4ddd6; margin:0 8px; }
.leaders .value{ white-space:nowrap; }

/* --------------------------------
   Map
--------------------------------- */
.map-card{
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  box-shadow:var(--shadow);
  max-width:960px;
  margin:0 auto;
}
.map-head{
  padding:12px 16px;
  border-bottom:1px solid var(--line);
  font-weight:800;
  text-align:center;
  background:var(--apricot-50);
}
.consent{ padding:16px; text-align:center; }
.shimmer{
  aspect-ratio:16/9;
  background:linear-gradient(110deg,#ffe9d6 8%, #fff5eb 18%, #ffe9d6 33%);
  background-size:200% 100%;
  animation:shimmer 2.5s linear infinite;
  border-radius:12px;
}
@keyframes shimmer{ 0%{background-position:200% 0} 100%{background-position:-200% 0} }
.map{
  width:100%;
  aspect-ratio:16/9;
  border:0;
  display:block;
  max-height:420px;
  max-width: 100%;
}
@media(max-width:768px){
  .map,.shimmer{ aspect-ratio:4/3; max-height:320px; }
}

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

/* --------------------------------
   Print
--------------------------------- */
@media print{
  .hero,.map-card,.kontakt-scope .pill,.icon{ box-shadow:none; }
  a{ color:#000; text-decoration:underline; }
  .badge-hero{ border-color:#ccc; background:#fff; }
}

/* ===== FAQ Section ===== */
#faq {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 1rem;
}

/* Container */
#faq .grid details {
  border: 1px solid var(--apricot-100);
  border-radius: var(--radius);
  background: var(--paper);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  margin-bottom: 18px;
  transition: box-shadow .3s ease, transform .2s ease, border-color .3s ease;
}
#faq .grid details:hover {
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}

/* Frage-Kopf */
#faq summary {
  cursor: pointer;
  padding: 18px 25px 18px 20px;
  font-weight: 800;
  font-size: 1rem;
  color: var(--ink);
  list-style: none;
  position: relative;
  display: flex;
  align-items: center;
  background: linear-gradient(180deg, #fff, var(--apricot-25));
}
#faq summary::-webkit-details-marker { display: none; }

/* Akzentpunkt links */
#faq summary::before {
  content: "";
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 0 3px rgba(234,88,12,.12);
  margin-right: 12px;
  flex-shrink: 0;
}

/* Pfeil rechts */
#faq summary::after {
  content: "";
  position: absolute;
  right: 20px; top: 50%;
  width: 12px; height: 12px;
  border-right: 3px solid var(--brand);
  border-bottom: 3px solid var(--brand);
  transform: translateY(-50%) rotate(-45deg);
  transition: transform .3s ease, border-color .3s ease;
}

/* Geöffnet: Pfeil drehen + Rand highlight */
#faq details[open] {
  border-color: var(--brand);
  box-shadow: var(--shadow);
}
#faq details[open] summary::after {
  transform: translateY(-50%) rotate(45deg);
  border-color: var(--brand-700);
}

/* Antworttext */
#faq p {
  margin: 0;
  padding: 0 20px 20px 42px;
  color: var(--muted);
  line-height: 1.7;
  font-size: 0.95rem;
  animation: fadeIn .35s ease;
  border-top: 1px solid var(--line);
}

/* Sanfte Einblendung */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Mobile Optimierung */
@media (max-width:520px){
  #faq summary { padding: 16px 48px 16px 14px; font-size: .95rem; }
  #faq p { padding: 0 14px 16px 25px; }
}
