/* Palette and fonts carried over from the original Google Sites design. */
:root {
  --navy: #38428e;
  --navy-deep: #0f164d;
  --slate: #33364d;
  --stone: #e1dfdb;
  --mist: #c9cedf;
  --text: rgba(0, 0, 0, 0.8);
  --text-soft: rgba(0, 0, 0, 0.64);
  --white: #fff;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--white);
  color: var(--text);
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 1.05rem;
  line-height: 1.7;
}

h1, h2, h3 {
  font-family: "Playfair Display", Georgia, serif;
  line-height: 1.25;
}

img { max-width: 100%; height: auto; display: block; }

/* Banner */
.banner {
  background: linear-gradient(135deg, var(--navy-deep), var(--navy));
  color: var(--white);
  text-align: center;
  padding: clamp(4rem, 12vw, 7rem) 1rem;
}
.banner h1 {
  margin: 0;
  font-size: clamp(2.6rem, 8vw, 4.5rem);
  font-weight: 700;
  letter-spacing: 0.01em;
}

/* Intro */
.intro {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(3rem, 8vw, 5rem) 1rem 2rem;
  text-align: center;
}
.intro h2 {
  margin: 0 0 0.5rem;
  font-size: clamp(2rem, 5vw, 2.8rem);
  color: var(--navy-deep);
}
.intro h3 {
  margin: 0 0 1.5rem;
  font-size: clamp(1.2rem, 3vw, 1.5rem);
  font-weight: 400;
  font-style: italic;
  color: var(--navy);
}
.intro p { margin: 0; color: var(--text-soft); font-size: 1.15rem; }

/* Offerings */
.offerings {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
  max-width: 1100px;
  margin: 0 auto;
  padding: 2rem 1rem clamp(3rem, 8vw, 5rem);
}
.offerings figure { margin: 0; text-align: center; }
.offerings img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 6px;
}
.offerings figcaption {
  margin-top: 1rem;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.6rem;
  color: var(--navy-deep);
}

/* How it works */
.how {
  background: var(--stone);
  padding: clamp(3rem, 8vw, 5rem) 1rem;
}
.how h2 {
  max-width: 1100px;
  margin: 0 auto 2.5rem;
  text-align: center;
  font-size: clamp(1.8rem, 4.5vw, 2.5rem);
  color: var(--navy-deep);
}
.how-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1.5rem;
  max-width: 1100px;
  margin: 0 auto;
}
.how-item {
  background: var(--white);
  border-radius: 8px;
  padding: 1.75rem 1.5rem;
  text-align: center;
}
.how-item img {
  height: 96px;
  width: auto;
  margin: 0 auto 1rem;
  object-fit: contain;
}
.how-item h3 { margin: 0 0 0.5rem; color: var(--navy); font-size: 1.3rem; }
.how-item p { margin: 0; color: var(--text-soft); font-size: 0.98rem; }

/* Footer */
.footer {
  background: var(--slate);
  color: var(--mist);
  text-align: center;
  padding: 2rem 1rem;
  font-size: 0.9rem;
}
.footer p { margin: 0; }
