/* Base layer: shared foundations for gradual migration */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  max-width: 100%;
}

img,
iframe,
video {
  max-width: 100%;
  height: auto;
}

/* Centered image block — replaces <div style="text-align:center; margin:32px 0"> */
.img-block {
  text-align: center;
  margin: 2rem 0;
}

/* Generic text alignment utilities */
.text-center { text-align: center; }
.text-left   { text-align: left; }

/* Keep Google Maps embed readable on both desktop and mobile. */
.map-embed {
  width: min(100%, 640px);
  height: clamp(280px, 56vw, 480px);
  border: 0;
}

/* Narrow page wrapper — e.g. thanks page */
.page-narrow {
  max-width: 600px;
  margin: 4rem auto 6rem;
  text-align: center;
}

/* Reusable spacing utility for replacing <br> based gaps */
.section-gap-sm {
  height: 1rem;
}

.section-gap-md {
  height: 2rem;
}

.section-gap-lg {
  height: 3rem;
}

.section-gap-xl {
  height: 5rem;
}
