html { color-scheme: dark; }
html, body { overflow-x: hidden; max-width: 100vw; }
.block img { max-width: 100%; height: auto; }
.subfooter-area { padding: 1rem 0; font-size: 0.85rem; text-align: center; }

/* === CMS Block Styles === */

.block { margin-bottom: 2rem; }
.block:last-child { margin-bottom: 0; }

/* Grid */
.grid { display: grid; }
.columns-2 { grid-template-columns: repeat(2, 1fr); }
.columns-3 { grid-template-columns: repeat(3, 1fr); }
.columns-4 { grid-template-columns: repeat(4, 1fr); }
.columns-5 { grid-template-columns: repeat(5, 1fr); }
.columns-6 { grid-template-columns: repeat(6, 1fr); }
.columns-7 { grid-template-columns: repeat(7, 1fr); }

@media (max-width: 768px) {
  .grid { grid-template-columns: 1fr !important; }
}

/* Gallery */
.gallery--grid { display: grid; gap: 0.5rem; }
.gallery--slider { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 0.5rem; }
.gallery--slider .gallery-item { flex: 0 0 100%; scroll-snap-align: start; }
.gallery-item img { width: 100%; height: auto; display: block; }

/* Cards */
.cards-grid { display: grid; gap: 1.5rem; }
.card { padding: 1.5rem; border-radius: 0.5rem; }
.card-icon { font-size: 2rem; margin-bottom: 0.75rem; }
.card-title { margin: 0 0 0.5rem; }
.card-text { margin: 0; }

/* Quote */
.quote { border-left: 4px solid currentColor; padding-left: 1.5rem; font-style: italic; }
.quote cite { display: block; margin-top: 0.75rem; font-style: normal; font-size: 0.9em; }

/* CTA Button */
.block--cta-button { text-align: center; }
.cta-btn { display: inline-block; padding: 0.75rem 2rem; border-radius: 0.375rem; text-decoration: none; font-weight: 600; transition: opacity 0.2s; }
.cta-btn:hover { opacity: 0.85; }

/* Video Consent */
.video-placeholder { position: relative; cursor: pointer; }
.video-placeholder img { width: 100%; display: block; }
.video-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; background: rgba(0,0,0,0.4); }
.video-play-btn { background: none; border: none; cursor: pointer; }
.video-consent-text { color: #fff; margin-top: 0.75rem; font-size: 0.85rem; text-align: center; padding: 0 1rem; }

/* Contact Form */
.contact-form .form-group { margin-bottom: 1rem; }
.contact-form label { display: block; margin-bottom: 0.25rem; }
.contact-form input, .contact-form textarea { width: 100%; padding: 0.5rem; border: 1px solid #ccc; border-radius: 0.25rem; }
.form-submit { padding: 0.75rem 2rem; cursor: pointer; }

/* Spacer */
.block--spacer { display: flex; align-items: center; }
.spacer-line { flex: 1; border: none; border-top: 1px solid #ddd; }

/* Events */
.events-list { display: grid; gap: 1.5rem; }
.event-card { padding: 1.5rem; border-radius: 0.5rem; }

/* Heading classes */
.h1 { font-size: 2.5rem; font-weight: 700; }
.h2 { font-size: 2rem; font-weight: 700; }
.h3 { font-size: 1.75rem; font-weight: 600; }
.h4 { font-size: 1.5rem; font-weight: 600; }
.h5 { font-size: 1.25rem; font-weight: 600; }
.h6 { font-size: 1rem; font-weight: 600; }

/* Header Logo */
.site-logo-img { height: 2.5rem; width: auto; display: block; }

/* Hero */
.hero { position: relative; min-height: 60vh; display: flex; align-items: center; justify-content: center; }
.hero-image { position: absolute; inset: 0; background-size: cover; background-position: center; }
.hero-content { position: relative; text-align: center; z-index: 1; }
