/* Gemeinsames Layout der Location-Detailseiten unter /dj-{location}/
 *
 * Herkunft: Die Regeln stammen aus /dj-schloss-neuburg-an-der-kammel/schloss.css.
 * Weil dieselbe Struktur ab 16.09.2026 auf allen Location-Seiten laeuft, liegt die
 * Datei jetzt zentral in helpers/css und wird von jeder Location-Seite geladen.
 * Alles ist auf .sn-page begrenzt, greift also nur innerhalb dieser Seiten.
 */
.sn-page{--sn-ink:#252724;--sn-gold:#9b8700;--sn-paper:#f6f4ee}
.sn-page .section{padding-block:76px}
.sn-page p{line-height:1.75}
.sn-page h2{font-size:clamp(1.8rem,3vw,2.65rem);line-height:1.17;letter-spacing:-.025em}
.sn-page h3{font-size:1.35rem;line-height:1.3}
.sn-page .sn-heading{max-width:800px;margin:0 auto 36px;text-align:center}
.sn-page .sn-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.sn-page .sn-photo{margin:0;background:#fff;border:1px solid #e4e0d5;border-radius:18px;overflow:hidden}
.sn-page .sn-photo img{display:block;width:100%;height:auto}
.sn-page .sn-photo figcaption{padding:12px 18px;font-size:.8rem;line-height:1.5;color:#62665f}
.sn-page .sn-tech{background:var(--sn-ink);color:#fff}
.sn-page .sn-tech h2,.sn-page .sn-tech h3{color:#fff}
.sn-page .sn-tech .eyebrow{color:#dcc754}
.sn-page .sn-tech p{color:#e3e4dd}
.sn-page .sn-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.sn-page .sn-tech-card{padding:30px 26px;border:1px solid #56584e;border-radius:16px;background:#30332c}
.sn-page .sn-number{display:block;font-size:2.6rem;line-height:1;color:#bca936;font-weight:700;margin-bottom:25px}
.sn-page .sn-tech-card .eyebrow{display:block;font-size:.68rem;letter-spacing:.14em;margin-bottom:10px}
.sn-page .sn-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.sn-page .sn-price{padding:34px;border:1px solid #dedacc;border-radius:18px;background:var(--sn-paper);display:flex;flex-direction:column;align-items:flex-start}
.sn-page .sn-price ul{padding-left:20px;margin:0 0 26px;line-height:1.65}
.sn-page .sn-price li{padding-block:5px}
.sn-page .sn-price-bottom{margin-top:auto;padding-top:24px;border-top:1px solid #dcd5c0;width:100%}
.sn-page .sn-price-value{font-weight:800;font-size:clamp(1.35rem,2.3vw,1.8rem);line-height:1.25;color:var(--sn-gold);margin:0 0 12px}
.sn-page .sn-text-link{display:block;margin-top:16px;text-decoration:underline}
.sn-page .sn-note{font-size:.9rem;max-width:880px;text-align:center;margin:25px auto 0;color:#62665f}
.sn-page .sn-other{margin-top:28px;border-top:1px solid #dedacc;padding:20px 0}
.sn-page .sn-other summary{cursor:pointer;font-weight:700}
.sn-page .sn-story{background:var(--sn-paper)}
.sn-page .sn-story-image{display:block;overflow:hidden;border-radius:18px}
.sn-page .sn-story-image img{display:block;width:100%;height:auto}
.sn-page .sn-location-intro{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:50px;align-items:start;margin-bottom:36px}
.sn-page .sn-address{background:var(--sn-paper);padding:28px;border-radius:16px;border-left:4px solid var(--sn-gold)}
.sn-page .sn-address address{font-style:normal;line-height:1.8;margin-bottom:20px}
.sn-page .sn-address>a{display:block;width:fit-content;margin-top:16px}
.sn-page .sn-rooms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.sn-page .sn-rooms article{border-top:2px solid #b9a50b;padding-top:20px}
.sn-page .sn-rooms strong{font-size:.85rem;color:var(--sn-gold)}
.sn-page .sn-step{padding:26px;border:1px solid #e2ddd0;border-radius:16px;background:#fff}
.sn-page :is(section,h2,h3){scroll-margin-top:110px}
.sn-page a:focus-visible,.sn-page summary:focus-visible{outline:3px solid #b9a50b;outline-offset:5px}

/* Bildergalerie der Raeume. Hochformat und Querformat liegen gemischt vor,
   deshalb feste Bildflaeche mit object-fit statt unterschiedlicher Hoehen. */
.sn-page .sn-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:8px}
.sn-page .sn-gallery figure{margin:0}
.sn-page .sn-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:12px}
.sn-page .sn-gallery figcaption{margin-top:8px;font-size:.88rem;line-height:1.45;color:#62665f}

/* Weiterfuehrende interne Links am Seitenende */
.sn-page .sn-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.sn-page .sn-links article{padding:22px;border:1px solid #e2ddd0;border-radius:14px;background:#fff}
.sn-page .sn-links h3{font-size:1.05rem;margin:0 0 8px}
.sn-page .sn-links p{font-size:.92rem;margin:0 0 12px}

@media(max-width:1100px){.sn-page .sn-gallery,.sn-page .sn-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.sn-page .sn-three{grid-template-columns:1fr}.sn-page .sn-rooms{grid-template-columns:repeat(2,minmax(0,1fr))}.sn-page .sn-split{gap:28px}.sn-page .sn-location-intro{gap:28px}.sn-page .sn-tech-card{padding:26px}.sn-page .sn-number{font-size:2rem;margin-bottom:18px}}
@media(max-width:700px){.sn-page .section{padding-block:48px}.sn-page .sn-split,.sn-page .sn-two,.sn-page .sn-location-intro{grid-template-columns:1fr}.sn-page .sn-price{padding:25px}.sn-page .sn-heading{text-align:left;margin-bottom:26px}.sn-page .sn-rooms{grid-template-columns:1fr}.sn-page .sn-photo{max-width:100%}.sn-page .wedding-hero h1{font-size:clamp(2rem,8vw,2.8rem)}.sn-page .wedding-hero__actions{gap:10px}.sn-page .wedding-hero__actions .btn{font-size:.85rem}.sn-page .sn-story .sn-split>div{order:2}.sn-page .sn-story-image{order:1}.sn-page .sn-gallery,.sn-page .sn-links{grid-template-columns:1fr}}

/* Video aus der Location, unter der Galerie. Nur hier verwendet. */
.sn-page .loc-video{max-width:900px;margin:26px auto 0}
.sn-page .loc-video video{display:block;width:100%;height:auto;border-radius:12px;background:#000}
.sn-page .loc-video figcaption{margin-top:10px;text-align:center;font-size:.9rem;color:#62665f;line-height:1.5}

/* Mobil: lange Button-Beschriftungen duerfen umbrechen. Ohne das erzwingt ein
   Button mit white-space:nowrap die Breite der ganzen Grid-Spalte, der Block
   wird breiter als der Viewport und rechts abgeschnitten. */
.sn-page .sn-personal .btn-group .btn{white-space:normal;text-align:center}
@media(max-width:700px){
.sn-page .btn{white-space:normal;text-align:center}
.sn-page .sn-split,.sn-page .sn-two,.sn-page .sn-location-intro{grid-template-columns:minmax(0,1fr)}
}
