/* call-to-action */
.cta { text-align: center; padding: 2.5rem 1.5rem; border-radius: var(--radius); color: #fff; }
.cta-brand { background: var(--brand); }
.cta-dark { background: var(--dark); }
.cta h2 { margin-bottom: 0.5rem; }
.cta p { margin-bottom: 1.25rem; opacity: 0.9; }


/* class-cards */
.class-card img { border-radius: var(--radius); margin-bottom: 1rem; }


/* gallery */
.gallery { display: grid; grid-template-columns: repeat(var(--columns, 3), 1fr); gap: 1rem; }
.gallery img { aspect-ratio: 1; object-fit: cover; border-radius: var(--radius); width: 100%; }
.gallery figcaption { font-size: 0.85rem; color: var(--muted); margin-top: 0.25rem; }
@media (max-width: 600px) { .gallery { grid-template-columns: repeat(2, 1fr); } }


/* hero */
.hero { text-align: center; padding: 4rem 1rem; border-radius: var(--radius); }
.hero h1 { font-size: 2.5rem; margin-bottom: 1rem; }
.hero p { font-size: 1.2rem; color: var(--muted); margin-bottom: 1.5rem; }
.hero.has-image { background-size: cover; background-position: center; color: #fff; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6); }
.hero.has-image p { color: #fff; }


/* photo-text */
.photo-text { display: grid; grid-template-columns: 2fr 3fr; gap: 2rem; align-items: center; }
.photo-text.photo-right { grid-template-columns: 3fr 2fr; }
.photo-text.photo-right img { order: 2; }
.photo-text.no-photo { grid-template-columns: 1fr; }
.photo-text img { border-radius: var(--radius); width: 100%; }
@media (max-width: 700px) {
  .photo-text, .photo-text.photo-right { grid-template-columns: 1fr; }
  .photo-text.photo-right img { order: 0; }
}


/* testimonials */
.testimonial blockquote { color: var(--muted); font-size: 1.05rem; margin-bottom: 0.5rem; }
.testimonial figcaption { font-weight: 600; }
.testimonial .avatar { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; float: left; margin: 0 1rem 0.5rem 0; }
.testimonial::after { content: ''; display: block; clear: both; }
