/* Shared component styles extracted from recurring page patterns */
.wf-content{max-width:860px;margin:0 auto}
.wf-content h2{font-size:1.75rem;margin:2.5rem 0 1rem;font-weight:900;line-height:1.2}
.wf-content h3{font-size:1.3rem;margin:1.8rem 0 .8rem;font-weight:700}
.wf-content p{line-height:1.75;margin-bottom:1rem}
.wf-content ul,.wf-content ol{margin:.75rem 0 1.25rem 1.5rem;line-height:1.75}
.wf-content ul li{margin-bottom:.4rem}.wf-content ol li{margin-bottom:.6rem}
.wf-infobox{background:var(--gray-light,#f5f4f0);border-left:4px solid var(--gold,#b9a50b);border-radius:8px;padding:20px 24px;margin:1.5rem 0}
.wf-infobox p:last-child,.wf-card p:last-child{margin-bottom:0}
.wf-checklist{list-style:none;margin-left:0!important}.wf-checklist li{padding-left:1.8rem;position:relative;margin-bottom:.5rem}
.wf-checklist li::before{content:"✓";position:absolute;left:0;color:var(--gold-dark,#9a8000);font-weight:700}
.wf-card{background:#fff;border:1px solid var(--gray-mid,#e0ddd6);border-radius:14px;padding:28px 32px;margin:2rem 0;box-shadow:0 2px 12px rgba(0,0,0,.06)}
.wf-steps{list-style:none;margin-left:0!important;counter-reset:wf-step}.wf-steps li{counter-increment:wf-step;padding-left:3rem;position:relative;margin-bottom:1.2rem;line-height:1.65}
.wf-steps li::before{content:counter(wf-step);position:absolute;left:0;top:0;width:2rem;height:2rem;background:var(--gold,#b9a50b);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}
.wf-cta-band{background:var(--charcoal,#1a1a1a);color:#fff;border-radius:14px;padding:36px 40px;margin:3rem 0;text-align:center}
.wf-cta-band h2{color:#fff;margin:0 0 12px;font-size:1.6rem}.wf-cta-band p{color:rgba(255,255,255,.78);margin:0 0 20px}
.wf-subnav{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 2.5rem}.wf-subnav a{background:var(--gray-light,#f5f4f0);border:1px solid var(--gray-mid,#e0ddd6);border-radius:20px;padding:6px 16px;font-size:.9rem;color:var(--text,#1a1a1a);text-decoration:none;transition:background .2s}.wf-subnav a:hover,.wf-subnav a.active{background:var(--gold,#b9a50b);color:#fff;border-color:var(--gold,#b9a50b)}
.wf-topic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin:1.5rem 0 2rem}.wf-topic-card{background:#fff;border:1px solid var(--gray-mid,#e0ddd6);border-radius:14px;padding:24px;box-shadow:0 2px 12px rgba(0,0,0,.06)}.wf-topic-card h3{margin-top:0}.wf-topic-card p:last-child,.wf-topic-card ul:last-child,.wf-topic-card ol:last-child{margin-bottom:0}
.wedding-time-row{margin:0 0 20px;padding:16px 20px;background:#fff;border-radius:8px;border:1px solid #e0e0e0}.wedding-time-row__label{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:#888;margin-bottom:10px}.wedding-time-row__inputs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.wedding-time-row__inputs label{font-size:.9rem;color:#444;margin:0;font-weight:600}.wedding-time-row__inputs input[type="time"]{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-family:inherit;background:#f7f7f7;color:#222;cursor:pointer;outline:none}.wedding-time-row__inputs input[type="time"]:focus{border-color:var(--gold,#b9a50b);box-shadow:0 0 0 2px rgba(185,165,11,.15)}.wedding-time-row__result{font-size:.88rem;color:var(--gold,#b9a50b);font-weight:600;line-height:1.4}
.wedding-playlists-grid,.playlist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.spotify-embed-card{background:#fff;border:1px solid #e0e0e0;border-radius:18px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.06);padding:12px}.spotify-embed-card iframe{display:block;width:100%;border:0;border-radius:12px}.spotify-lazy{background:#f7f7f7;border:1px solid #e0e0e0;border-radius:12px;min-height:72px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .25s ease,border-color .25s ease;gap:10px;padding:14px}.spotify-lazy:hover{background:#fff;border-color:var(--gold,#b9a50b)}.spotify-lazy.is-loaded{min-height:unset;cursor:default;background:transparent;border:none;padding:0}.spotify-lazy .sl-icon{width:28px;height:28px;flex-shrink:0}.spotify-lazy .sl-text{font-size:.82rem;font-weight:700;color:#666}
.faq-hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;margin:2rem 0}.faq-hub-card{background:#fff;border:1px solid var(--gray-mid,#e0ddd6);border-radius:16px;padding:28px;box-shadow:var(--shadow-sm)}

.wf-image{margin:1.75rem 0 2rem}
.wf-image img{width:100%;max-width:820px;display:block;margin:0 auto;border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.wf-image figcaption{margin-top:.7rem;text-align:center;font-size:.95rem;color:#666;line-height:1.55}
@media (max-width:767px){.wedding-playlists-grid,.playlist-grid{grid-template-columns:1fr}.wf-content h2{font-size:1.45rem}.wf-card{padding:20px 18px}.wf-cta-band{padding:28px 20px}}


/* Wedding playlists, note and CTA spacing */
.wedding-playlists-intro{max-width:980px;margin:0 auto 30px}
.wedding-playlists-intro p:last-of-type{margin-bottom:0}
.wedding-playlists-note{margin-top:22px;padding:16px 18px;background:var(--gray-light,#f5f4f0);border:1px solid rgba(185,165,11,.24);border-left:4px solid var(--gold,#b9a50b);border-radius:14px}
.wedding-playlists-note p{margin:0}
.wedding-playlists-grid{margin:30px 0 0}
.spotify-embed-card{height:100%}
.wedding-playlists-actions{display:flex;flex-wrap:wrap;gap:14px 16px;align-items:stretch;justify-content:center;margin:28px 0 0}
.wedding-playlists-actions .btn{min-width:240px;justify-content:center}
@media (max-width:767px){
  .wedding-playlists-actions{flex-direction:column;gap:12px;margin-top:20px}
  .wedding-playlists-actions .btn{width:100%;min-width:0}
}

.wedding-links-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1024px){.wedding-links-grid--three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.wedding-links-grid--three{grid-template-columns:minmax(0,1fr)}}


/* Ambiente light visual compare + type cards */
.faq-visual-compare{margin:24px 0 0}
.faq-visual-compare__image{display:block;width:100%;border-radius:18px;box-shadow:var(--shadow-sm);border:1px solid var(--gray-mid,#e0ddd6)}
.faq-visual-compare__body{margin-top:18px}
.faq-visual-compare__body h3{margin-top:0}
.faq-types-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:1.5rem 0 0}
.faq-type-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--gray-mid,#e0ddd6);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm)}
.faq-type-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.faq-type-card__body{padding:20px 18px}
.faq-type-card__body h3{margin:0 0 10px}
.faq-type-card__body p{margin:0}
.faq-practice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:24px}
.faq-practice-card{background:#fff;border:1px solid var(--gray-mid,#e0ddd6);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);margin:0}
.faq-practice-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.faq-practice-card figcaption{padding:14px 16px;font-size:.84rem;line-height:1.6;color:var(--gray-muted)}
.faq-hub-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.faq-types-grid,.faq-practice-grid,.faq-hub-grid--three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.faq-types-grid,.faq-practice-grid,.faq-hub-grid--three{grid-template-columns:1fr}.faq-visual-compare__body{margin-top:14px}}


/* ── Location gallery grid (shared, replaces page-specific variants) ── */
.loc-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:8px}
.loc-gallery figure{margin:0;overflow:hidden;border-radius:12px;background:var(--gray-light,#f4f4f4)}
.loc-gallery img{width:100%;height:220px;object-fit:cover;display:block;transition:transform .35s ease}
.loc-gallery figure:hover img{transform:scale(1.04)}
.loc-gallery figcaption{padding:8px 10px 10px;font-size:.82rem;color:var(--gray-muted,#666);line-height:1.45}
.loc-gallery--four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.loc-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.loc-gallery{grid-template-columns:1fr;gap:10px}
  .loc-gallery img{height:180px}}

/* ── gs-* Location-Komponenten (global) ─────────────────────────────── */
.gs-facts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px}
.gs-fact-card{background:#fff;border:1px solid var(--gray-mid,#e1ddd4);border-radius:16px;padding:22px 20px;box-shadow:var(--shadow-sm)}
.gs-fact-card h3{font-size:1.08rem;margin-bottom:10px}
.gs-fact-card p{margin:0;color:var(--gray-muted,#5d6470)}
.gs-map-shell{background:#fff;border:1px solid var(--gray-mid,#e1ddd4);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);height:100%;min-height:430px}
.gs-map-shell iframe{width:100%;height:100%;min-height:430px;border:0;display:block}
.gs-contact-card{background:#fff;border:1px solid var(--gray-mid,#e1ddd4);border-radius:18px;padding:28px 26px;box-shadow:var(--shadow-sm)}
.gs-contact-card h3{margin-bottom:14px}
.gs-contact-list{display:grid;gap:12px;margin:22px 0}
.gs-contact-list div{padding:14px 16px;background:var(--gray-light,#f7f4ee);border:1px solid rgba(185,165,11,.18);border-radius:12px}
.gs-contact-list strong{display:block;font-size:.86rem;letter-spacing:.07em;text-transform:uppercase;color:#666b72;margin-bottom:6px}
.gs-contact-list a{word-break:break-word;color:var(--gold,#b9a50b)}
@media(max-width:900px){.gs-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gs-map-shell,.gs-map-shell iframe{min-height:280px}}
@media(max-width:600px){.gs-facts-grid{grid-template-columns:1fr}}
/* 2-Card-Variante (organisation-block.php) */
.gs-facts-grid--two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:880px;margin-left:auto;margin-right:auto}
@media(max-width:600px){.gs-facts-grid--two{grid-template-columns:1fr}}

/* ── Erfahrungs-Kennzahlen (dokumentierte Veranstaltungen, global) ──── */
.stat-figures-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px}
.stat-figure{background:#fff;border:1px solid var(--gray-mid,#e1ddd4);border-radius:16px;padding:28px 20px;text-align:center;box-shadow:var(--shadow-sm)}
.stat-figure strong{display:block;font-size:2.6rem;line-height:1;font-weight:900;color:var(--gold-dark,#8a7608);margin-bottom:8px}
.stat-figure span{display:block;font-size:.95rem;color:var(--gray-muted,#5d6470);line-height:1.4}
@media(max-width:900px){.stat-figures-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.stat-figures-grid{grid-template-columns:1fr}}

/* Elfsight Reviews Widget: CLS-Schutz.
   Container muss Hoehe haben BEVOR das Widget asynchron reinrendert,
   sonst Layout-Shift wenn das Reviews-Panel auftaucht.
   Wert konservativ gewaehlt fuer ~5-10 sichtbare Reviews.
   Wenn das Widget kleiner ist, bleibt unten etwas Luft, aber kein Shift. */
[class*="elfsight-app-"]{min-height:600px}
@media(max-width:767px){[class*="elfsight-app-"]{min-height:520px}}

/* Google Maps Lazy Facade: Click-to-Load statt sofort iframe.
   Spart ~348 KiB Maps-API JavaScript auf allen Location-Pages, die das
   alte maps.google.com/maps?q=-Format benutzt haben. User sieht einen
   klickbaren Placeholder mit Map-Pin-Icon, bis er aktiv die Karte laedt. */
.map-lazy{
  width:100%;
  min-height:450px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#f4f4f4 0%,#e8e8e8 100%);
  border:1px solid #e0e0e0;
  border-radius:8px;
  cursor:pointer;
  transition:background-color .2s ease;
}
.map-lazy:hover{background:linear-gradient(135deg,#ebebeb 0%,#dadada 100%)}
.map-lazy:focus-visible{outline:2px solid #b9a50b;outline-offset:2px}
.map-lazy__cover{text-align:center;color:#666;padding:20px}
.map-lazy__pin{width:48px;height:48px;color:#b9a50b;margin:0 auto 12px;display:block}
.map-lazy__label{display:block;font-size:1rem;font-weight:700;color:#1a1a1a;margin-bottom:4px}
.map-lazy__hint{display:block;font-size:.82rem;color:#777}
.map-lazy.is-loaded{min-height:0;background:none;border:0;padding:0;cursor:default;display:block}
.map-lazy.is-loaded iframe{display:block;width:100%;height:450px;border:0;border-radius:8px}
@media(max-width:767px){
  .map-lazy{min-height:320px}
  .map-lazy.is-loaded iframe{height:320px}
}

/* Magazin-Teaser (Service-Hubs, Locations, Startseite) */
.mag-teaser{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:28px}
.mag-teaser__card{background:#fff;border:1px solid #e5e5e5;border-radius:8px;overflow:hidden;text-decoration:none;display:block;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:border-color .2s,transform .2s,box-shadow .2s}
.mag-teaser__card:hover{border-color:#b9a50b;transform:translateY(-3px);box-shadow:0 8px 24px rgba(185,165,11,.15)}
.mag-teaser__img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#e5e5e5}
.mag-teaser__body{padding:14px 16px 18px}
.mag-teaser__tag{font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#8e7c08;margin-bottom:4px}
.mag-teaser__title{font-size:.92rem;font-weight:700;color:#1a1a1a;line-height:1.3}
.bg-dark .mag-teaser__card{background:#1a1a1a;border-color:rgba(185,165,11,.22)}
.bg-dark .mag-teaser__title{color:#fff}
.bg-dark .mag-teaser__tag{color:#d4bd0e}


/* Datenschutzfreundliche YouTube-Lazyload-Fassade */
.wf-video-block{margin:3rem 0 2.5rem}
.wf-video-block h2{margin-top:0}
.youtube-lazy{position:relative;width:100%;max-width:860px;aspect-ratio:16/9;margin:1.25rem auto 0;border-radius:16px;overflow:hidden;background:#111;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.youtube-lazy__button{display:block;position:relative;width:100%;height:100%;padding:0;border:0;background:#111;color:#fff;cursor:pointer;font:inherit;text-align:left}
.youtube-lazy__button img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.7);transition:transform .35s ease,filter .35s ease}
.youtube-lazy__button:hover img,.youtube-lazy__button:focus-visible img{transform:scale(1.03);filter:brightness(.58)}
.youtube-lazy__button:focus-visible{outline:3px solid var(--gold,#b9a50b);outline-offset:3px}
.youtube-lazy__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:18px;padding:24px;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.54))}
.youtube-lazy__play{width:76px;height:76px;border-radius:50%;background:var(--gold,#b9a50b);color:#111;display:flex;align-items:center;justify-content:center;font-size:2.25rem;line-height:1;padding-left:5px;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.youtube-lazy__text{display:flex;flex-direction:column;gap:4px;max-width:300px}
.youtube-lazy__text strong{font-size:1.15rem;color:#fff}
.youtube-lazy__text small{font-size:.88rem;line-height:1.45;color:rgba(255,255,255,.86)}
.youtube-lazy.is-loaded{background:#000}
.youtube-lazy iframe{display:block;width:100%;height:100%;border:0}
.wf-video-note{font-size:.9rem;color:#666;margin-top:.8rem;line-height:1.55}
.wf-video-source{font-size:.9rem;color:#666;margin-top:.45rem;line-height:1.55}
.wf-video-source a{color:var(--gold-dark,#9a8000);font-weight:700;text-decoration:underline}
@media(max-width:767px){
  .wf-video-block{margin:2.25rem 0}
  .youtube-lazy__overlay{flex-direction:column;text-align:center;gap:12px;padding:18px}
  .youtube-lazy__play{width:60px;height:60px;font-size:1.8rem}
  .youtube-lazy__text strong{font-size:1rem}
  .youtube-lazy__text small{font-size:.78rem}
}

/* Anlassbezogene Location-Verlinkung auf allgemeinen Location-Seiten */
.loc-specific-links .wedding-section-head{max-width:920px;margin-left:auto;margin-right:auto;text-align:center}
.loc-specific-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:26px}
.loc-specific-card{background:#fff;border:1px solid var(--gray-mid,#e1ddd4);border-radius:16px;padding:22px 20px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.loc-specific-card h3{margin:0;color:var(--text,#1a1a1a)}
.loc-specific-card p{margin:0;color:var(--gray-muted,#5d6470);line-height:1.6}
.loc-specific-card .btn{margin-top:auto}
@media(max-width:767px){.loc-specific-grid{grid-template-columns:1fr}.loc-specific-card .btn{width:100%;justify-content:center}}
.location-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}
.location-gallery figure{margin:0;overflow:hidden;border:1px solid var(--gray-mid,#e1ddd4);border-radius:12px;background:var(--white,#fff);box-shadow:0 8px 22px rgba(0,0,0,.06)}
.location-gallery img{display:block;width:100%;height:240px;object-fit:cover;background:#eeeae2}
.location-gallery figcaption{padding:11px 13px 13px;color:var(--gray-muted,#5d6470);font-size:.88rem;line-height:1.5}
body.page--firmenfeier-dj-schloss-oberndorf .wedding-hero__image{object-position:center 54%}
body.page--firmenfeier-dj-schloss-oberndorf .schloss-business-price-card{margin-top:36px}
@media(max-width:900px){.location-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.location-gallery{grid-template-columns:1fr}.location-gallery img{height:auto;aspect-ratio:4/3}body.page--firmenfeier-dj-schloss-oberndorf .schloss-business-price-card{margin-top:24px}}
.wedding-link-card__link{display:inline-flex;align-items:center;margin-top:10px;color:var(--gold-dark,#9a8000);font-weight:700;text-decoration:underline}
.wedding-link-card__link:hover{text-decoration:none}
#referenzen .wedding-link-card{overflow:hidden;padding:0}
#referenzen .wedding-link-card img{display:block;width:100%;height:220px;object-fit:cover}
#referenzen .wedding-link-card h3{margin:18px 18px 8px}
#referenzen .wedding-link-card p{margin:0 18px 16px}
#referenzen .wedding-link-card__link{margin:0 18px 18px}


/* FAQ-Hub: Akkordeon wie auf /hochzeits-dj/ darstellen */
body.page--wissenswertes-faq #faq.bg-white{background:var(--white,#fff)}
body.page--wissenswertes-faq #faq .wedding-faq{max-width:940px;margin:0 auto}
body.page--wissenswertes-faq #faq .wedding-faq-item{background:#fff;border-bottom:1px solid var(--gray-mid,#e1ddd4)}
body.page--wissenswertes-faq #faq .wedding-faq-item:first-child{border-top:1px solid var(--gray-mid,#e1ddd4)}
body.page--wissenswertes-faq #faq .wedding-faq-item summary{list-style:none}
body.page--wissenswertes-faq #faq .wedding-faq-item summary::-webkit-details-marker{display:none}
body.page--wissenswertes-faq #faq .wedding-faq-question{width:100%;background:none;border:0;padding:16px 0;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:16px;font:inherit;font-size:1.02rem;font-weight:700;color:var(--gold-dark,#9a8000);cursor:pointer}
body.page--wissenswertes-faq #faq .wedding-faq-question:hover{color:var(--gold,#b9a50b)}
body.page--wissenswertes-faq #faq .wedding-faq-icon{width:24px;height:24px;border:2px solid var(--gold,#b9a50b);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem;color:var(--gold,#b9a50b);line-height:1}
body.page--wissenswertes-faq #faq .wedding-faq-answer{display:none;padding:0 28px 16px 0;color:var(--gray-muted,#5d6470);line-height:1.7}
body.page--wissenswertes-faq #faq .wedding-faq-item[open] .wedding-faq-icon{background:var(--gold,#b9a50b);color:var(--white,#fff)}
body.page--wissenswertes-faq #faq .wedding-faq-item[open] .wedding-faq-answer{display:block}
body.page--wissenswertes-faq #faq .wedding-faq-answer a{color:var(--gold-dark,#9a8000);font-weight:700;text-decoration:underline}
@media(max-width:767px){body.page--wissenswertes-faq #faq .wedding-faq-answer{padding-right:0}}

/* Einheitliche FAQ-Komponente */
.faq-accordion {
  display: grid;
  gap: 12px;
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
}
.faq-accordion .wedding-faq-item {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--gray-mid, #e1ddd4);
  border-radius: 14px;
  box-shadow: 0 7px 20px rgba(0, 0, 0, .045);
}
.faq-accordion .wedding-faq-question {
  min-height: 64px;
  padding: 18px 20px;
  color: var(--charcoal-2, #1a1a1a);
}
.faq-accordion .wedding-faq-item[open] .wedding-faq-question {
  background: #fffaf0;
  color: var(--gold-dark, #8a7300);
}
.faq-accordion .wedding-faq-answer {
  padding: 18px 20px 22px;
  border-top: 1px solid rgba(185, 165, 11, .22);
  color: var(--gray-muted, #5d6470);
  line-height: 1.75;
}
.faq-accordion .wedding-faq-answer p:last-child {
  margin-bottom: 0;
}
.faq-cta {
  margin: 24px 0 0;
}
@media(max-width:820px) {
  .faq-accordion .wedding-faq-question {
    padding: 16px;
  }
  .faq-accordion .wedding-faq-answer {
    padding: 16px 16px 20px;
  }
}

/* =====================================================================
   Einheitliche FAQ-Komponente – sitewide (Stand 2026-09-11)
   Die .faq-accordion-Optik gilt für JEDE .wedding-faq, egal ob die Fragen
   als <details>/<summary> oder als <div>/<button> (.is-open) gebaut sind.
   Vorbild: /dj-augsburg/ und /dj-muenchen/.
   :is(#faq, body) hebt die Spezifität auf ID-Niveau, damit ältere
   Seitenregeln (z. B. body.page--wissenswertes-faq #faq …, Listenoptik
   mit Trennlinien) nicht mehr greifen. Keine HTML-Änderung nötig.
   ===================================================================== */
html :is(#faq, body) .wedding-faq{
  display:grid;
  gap:12px;
  width:100%;
  max-width:930px;
  margin-inline:auto;
}
html :is(#faq, body) .wedding-faq .wedding-faq-item{
  margin:0;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--gray-mid, #e1ddd4);
  border-radius:14px;
  box-shadow:0 7px 20px rgba(0, 0, 0, .045);
}
html :is(#faq, body) .wedding-faq .wedding-faq-item .wedding-faq-question{
  min-height:64px;
  padding:18px 20px;
  background:transparent;
  color:var(--charcoal-2, #1a1a1a);
}
html :is(#faq, body) .wedding-faq .wedding-faq-item:is([open], .is-open) .wedding-faq-question{
  background:#fffaf0;
  color:var(--gold-dark, #8a7300);
}
html :is(#faq, body) .wedding-faq .wedding-faq-item .wedding-faq-answer{
  padding:18px 20px 22px;
  border-top:1px solid rgba(185, 165, 11, .22);
  color:var(--gray-muted, #5d6470);
  line-height:1.75;
}
html :is(#faq, body) .wedding-faq .wedding-faq-item .wedding-faq-answer p:last-child{
  margin-bottom:0;
}
@media (max-width:820px){
  html :is(#faq, body) .wedding-faq .wedding-faq-item .wedding-faq-question{
    padding:16px;
  }
  html :is(#faq, body) .wedding-faq .wedding-faq-item .wedding-faq-answer{
    padding:16px 16px 20px;
  }
}
/* Ältere FAQ-Varianten (.faq-item/.faq-q, .h27-faq) an dieselbe Optik angleichen */
html :is(#faq, body) .faq-list{
  display:grid;
  gap:12px;
}
html :is(#faq, body) .faq-item:has(> .faq-q){
  overflow:hidden;
  background:#fff;
  border:1px solid var(--gray-mid, #e1ddd4);
  border-radius:14px;
  box-shadow:0 7px 20px rgba(0, 0, 0, .045);
}
html :is(#faq, body) .faq-item:has(> .faq-q) > .faq-q{
  min-height:64px;
  padding:18px 20px;
  background:transparent;
  color:var(--charcoal-2, #1a1a1a);
  font-size:1.02rem;
  font-weight:700;
}
html :is(#faq, body) .faq-item.open:has(> .faq-q) > .faq-q{
  background:#fffaf0;
  color:var(--gold-dark, #8a7300);
}
html :is(#faq, body) .faq-item:has(> .faq-q) .faq-a-inner{
  padding:18px 20px 22px;
  border-top:1px solid rgba(185, 165, 11, .22);
  font-size:1rem;
  line-height:1.75;
  color:var(--gray-muted, #5d6470);
}
html :is(#faq, body) .h27-faq{
  display:grid;
  gap:12px;
}
html :is(#faq, body) .h27-faq > details{
  margin:0;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--gray-mid, #e1ddd4);
  border-radius:14px;
  box-shadow:0 7px 20px rgba(0, 0, 0, .045);
}
html :is(#faq, body) .h27-faq > details > summary{
  padding:18px 20px;
  font-weight:700;
  color:var(--charcoal-2, #1a1a1a);
  cursor:pointer;
}
html :is(#faq, body) .h27-faq > details[open] > summary{
  background:#fffaf0;
  color:var(--gold-dark, #8a7300);
}
html :is(#faq, body) .h27-faq .h27-faq__answer{
  padding:18px 20px 22px;
  border-top:1px solid rgba(185, 165, 11, .22);
  color:var(--gray-muted, #5d6470);
  line-height:1.75;
}
/* === Ende Einheitliche FAQ-Komponente === */

/* =====================================================================
   Leistungs-Kacheln wie auf der Startseite (Stand 2026-09-11)
   Gilt für jede .services-grid > .service-card, egal ob die Seite eigene
   Kachel-Stile hatte (rico-muc-/rico-augs-/rico-neuburg-services).
   Desktop: Foto füllt die Kachel (mind. 16:9), Text liegt unten auf dem
   Verlauf. Wird der Text länger, wächst die Kachel mit statt ihn abzuschneiden.
   Mobil (bis 767px): Foto oben, Text darunter auf dunklem Grund – wie Startseite.
   Spezifität über html :is(#kacheln, body), damit ältere Seitenregeln nicht gewinnen.
   ===================================================================== */
html :is(#kacheln, body) .services-grid:has(> .service-card){
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
}
html :is(#kacheln, body) .services-grid > .service-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  align-items:end;
  width:auto;
  min-width:0;
  height:auto;
  min-height:0;
  aspect-ratio:auto;
  overflow:hidden;
  border:0;
  border-radius:var(--r, 4px);
  box-shadow:var(--shadow-md);
  background:var(--charcoal-2, #1a1a1a);
  color:inherit;
  text-decoration:none;
  cursor:pointer;
}
html :is(#kacheln, body) .services-grid > .service-card::before{
  content:"";
  grid-area:1 / 1;
  display:block;
  aspect-ratio:16 / 9;
}
html :is(#kacheln, body) .services-grid > .service-card > img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  flex:none;
  object-fit:cover;
  border-radius:0;
  transform:none;
  transition:transform .5s ease;
}
html :is(#kacheln, body) .services-grid > .service-card:hover > img{ transform:scale(1.04); }
html :is(#kacheln, body) .services-grid > .service-card > .service-card__overlay{
  display:block;
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(to top, rgba(26,26,26,.90) 0%, rgba(26,26,26,.22) 55%, transparent 100%);
  transition:background var(--t, .25s);
}
html :is(#kacheln, body) .services-grid > .service-card:hover > .service-card__overlay{
  background:linear-gradient(to top, rgba(26,26,26,.95) 0%, rgba(26,26,26,.42) 60%, rgba(26,26,26,.10) 100%);
}
/* Kacheln mit mehr Text (Preiszeile, zwei Links): Verlauf reicht höher, damit alles lesbar bleibt. */
html :is(#kacheln, body) .services-grid > .service-card:has(.service-card__price, .btn-group) > .service-card__overlay{
  background:linear-gradient(to top, rgba(26,26,26,.94) 0%, rgba(26,26,26,.72) 42%, rgba(26,26,26,.22) 78%, rgba(26,26,26,.06) 100%);
}
html :is(#kacheln, body) .services-grid > .service-card > .service-card__body{
  grid-area:1 / 1;
  position:relative;
  inset:auto;
  z-index:2;
  display:block;
  align-self:end;
  min-height:0;
  margin:0;
  padding:20px 22px;
  background:transparent;
}
html :is(#kacheln, body) .services-grid > .service-card .service-card__tag{
  margin:0 0 3px;
  font-size:.62rem;
  line-height:1.7;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:700;
}
html :is(#kacheln, body) .services-grid > .service-card .service-card__body h3{
  margin:0 0 4px;
  font-size:1.2rem;
  line-height:1.25;
  color:var(--white, #fff);
}
html :is(#kacheln, body) .services-grid > .service-card .service-card__body p{
  max-width:none;
  margin:0 0 8px;
  font-size:.82rem;
  line-height:1.7;
  font-weight:300;
  color:rgba(255,255,255,.7);
}
html :is(#kacheln, body) .services-grid > .service-card .service-card__body .service-card__price strong{
  color:var(--gold);
  font-weight:700;
}
html :is(#kacheln, body) .services-grid > .service-card .service-card__link,
html :is(#kacheln, body) .services-grid > .service-card .service-card__body .btn-group .btn{
  display:inline-flex;
  align-items:center;
  gap:5px;
  width:auto;
  min-width:0;
  height:auto;
  min-height:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  transform:none;
  font-size:.68rem;
  line-height:1.7;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--gold);
  text-decoration:none;
  transition:gap var(--t, .25s);
}
/* Buttons in den Kacheln als Textlinks wie auf der Startseite. !important nur hier,
   weil .wedding-page a.btn / .wedding-page .btn--gold selbst mit !important arbeiten. */
html :is(#kacheln, body) .services-grid > .service-card .service-card__body .btn-group .btn{
  display:inline-flex !important;
  justify-content:flex-start !important;
  min-height:0 !important;
  padding:0 !important;
  border:0 !important;
  background:none !important;
  box-shadow:none !important;
  color:var(--gold) !important;
  font-size:.68rem !important;
  line-height:1.7 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  font-weight:700 !important;
}
html :is(#kacheln, body) .services-grid > .service-card .service-card__body .btn-group .btn:not(.btn--gold){ color:rgba(255,255,255,.78) !important; }
html :is(#kacheln, body) .services-grid > .service-card:hover .service-card__link,
html :is(#kacheln, body) .services-grid > .service-card .service-card__body .btn-group .btn:hover{ gap:9px; }
html :is(#kacheln, body) .services-grid > .service-card .service-card__body .btn-group{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 20px;
  margin:4px 0 0;
  padding:0;
}
html :is(#kacheln, body) .services-grid > .service-card .service-card__body .btn-group .btn--gold::after{ content:"→"; }
/* KI-Hinweis (includes/ki-bilder.php) in einer Kachel: als kleines Label oben rechts im Foto,
   damit er das Kachel-Raster nicht verschiebt. */
html :is(#kacheln, body) .services-grid > .service-card > .ki-hinweis{
  position:absolute;
  top:.7rem;
  right:.7rem;
  z-index:3;
  margin:0;
  padding:.25rem .6rem;
  border-radius:999px;
  background:rgba(18,18,18,.55);
  color:#fff;
  font-size:.6875rem;
  line-height:1.3;
  white-space:nowrap;
  pointer-events:none;
}
@media (max-width:767px){
  html :is(#kacheln, body) .services-grid:has(> .service-card){ grid-template-columns:minmax(0, 1fr); }
  html :is(#kacheln, body) .services-grid > .service-card{ display:block; }
  html :is(#kacheln, body) .services-grid > .service-card::before{ display:none; }
  html :is(#kacheln, body) .services-grid > .service-card > img{ position:static; height:200px; }
  html :is(#kacheln, body) .services-grid > .service-card:hover > img{ transform:none; }
  html :is(#kacheln, body) .services-grid > .service-card > .service-card__overlay{ display:none; }
  html :is(#kacheln, body) .services-grid > .service-card > .service-card__body{
    position:static;
    padding:18px 20px 20px;
    background:var(--charcoal-2, #1a1a1a);
  }
}
/* === Ende Leistungs-Kacheln === */

/* =====================================================================
   Breadcrumb (Stand 2026-09-11)
   1. Immer einzeilig: Der letzte Eintrag wird bei Platzmangel mit „…“ gekürzt.
      Vorher brach er mobil auf zwei Zeilen um und lag dann über der Überschrift.
   2. Seiten ohne <main class="page-body">: Der helle Seitenkopf rutscht sonst unter
      Navigation und Breadcrumb (z. B. /dj-magazin/so-bekommt-ihr-die-besten-tanzflaechen-fotos/).
   ===================================================================== */
.site-breadcrumb__list{
  flex-wrap:nowrap;
  min-width:0;
  overflow:hidden;
}
.site-breadcrumb__list li{
  flex:0 0 auto;
  white-space:nowrap;
}
.site-breadcrumb__list li:last-child{
  flex:0 1 auto;
  min-width:0;
  overflow:hidden;
}
.site-breadcrumb__list li:last-child span{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body > nav.site-breadcrumb + .page-hero{
  margin-top:var(--nav-h);
}
/* === Ende Breadcrumb === */
