/* CSS BY NAME */
/* Andrew's Field and Feast Stylesheet */

/* Imported fonts */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');

/* CSS RESET */
    html, body, div, span, applet, object, iframe,
    h1, h2, h3, h4, h5, h6, p, blockquote, pre,
    a, abbr, acronym, address, big, cite, code,
    del, dfn, em, img, ins, kbd, q, s, samp,
    small, strike, strong, sub, sup, tt, var,
    b, u, i, center,
    dl, dt, dd, ol, ul, li,
    fieldset, form, label, legend,
    table, caption, tbody, tfoot, thead, tr, th, td,
    article, aside, canvas, details, embed,
    figure, figcaption, footer, header, hgroup,
    menu, nav, output, ruby, section, summary,
    time, mark, audio, video {
      margin: 0;
      padding: 0;
      border: 0;
      font-size: 100%;
      font: inherit;
      vertical-align: baseline;
    }
    article, aside, details, figcaption, figure,
    footer, header, hgroup, menu, nav, section {
      display: block;
    }
    body {
      line-height: 1;
    }
    ol, ul {
      list-style: none;
    }
    blockquote, q {
      quotes: none;
    }
    blockquote:before, blockquote:after,
    q:before, q:after {
      content: '';
      content: none;
    }
    table {
      border-collapse: collapse;
      border-spacing: 0;
    }

        /* ROOT VARIABLES */
    :root {
      --midnight-blue: #1F2A44;
      --olive-green: #76885B;
      --champagne-gold: #E5C185;
      --linen: #F8F4EC;
      --dark-charcoal: #2B2B2B;
      --soft-white: #FAF9F6;
    }
    /* GLOBAL STYLES (mobile first/small) */
*, *::before, *::after {
  box-sizing: border-box;
}
html, body {
  margin: 0;
  padding: 0;
}
body {
  font-family: 'Playfair Display', serif;
  background: var(--linen);
  color: var(--dark-charcoal);
  line-height: 1.5;
  padding: 1rem;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  max-width: 100%;
  display: block;
}

/* Header */
header {
  text-align: center;
  background: var(--midnight-blue);
  color: var(--soft-white);
  padding: 1rem 0;
}
header > img {
  max-width: 80px;
  margin: 0 auto 0.5rem;
}
header > h1 {
  font-size: 2rem;
}
header > p {
  font-style: italic;
}

/* Navigation */
nav {
  background: var(--champagne-gold);
  display: flex;
  justify-content: space-around;
  padding: 0.75rem 0;
  font-weight: bold;
}
nav a {
  color: inherit;
}

/* Main Content */
main {
  margin: 1.5rem 0;
}
section {
  margin-bottom: 2rem;
}
h1, h2, h3 {
  color: var(--midnight-blue);
  margin-bottom: 0.5rem;
  font-family: 'Playfair Display', serif;
}
h1 {
  font-size: 2rem;
}
h2 {
  font-size: 1.75rem;
}
section#about p {
  margin-top: 0.5rem;
}

/* Offerings Section */
section#offerings > div {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
section#offerings > div > article {
  background: var(--olive-green);
  color: var(--soft-white);
  padding: 1rem;
  border-radius: 0.5rem;
}
section#offerings > div > article > h3 {
  margin-bottom: 0.5rem;
}
section#offerings > div > article ul {
  margin-top: 0.5rem;
  padding-left: 1.25rem;
  list-style: disc;
}

/* Gallery Section (mobile-first) */
section#gallery > div {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
section#gallery > div > figure {
  background: #fff;
  border: 1px solid var(--linen);
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}
section#gallery > div > figure > img {
  width: 100%;
  display: block;
}
section#gallery > div > figure > figcaption {
  padding: 0.75rem 0.5rem;
  text-align: center;
  font-style: italic;
  font-size: 0.9rem;
  color: var(--dark-charcoal);
}
section#gallery > a {
  display: block;
  width: 100%;
  text-align: center;
  background: var(--olive-green);
  color: var(--soft-white);
  padding: 0.75rem;
  border-radius: 0.5rem;
  font-weight: bold;
  margin-top: 1rem;
}

/* Footer */
footer {
  text-align: center;
  background: var(--midnight-blue);
  color: var(--soft-white);
  padding: 1rem 0;
  font-size: 0.9rem;
}
footer a {
  color: var(--champagne-gold);
}

/* MEDIA QUERY (medium) */
@media (min-width: 600px) {
  section#offerings > div {
    grid-template-columns: repeat(2, 1fr);
  }
  section#offerings > div > article:nth-of-type(3) {
    grid-column: 1 / -1;
  }
  section#gallery > div {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* MEDIA QUERY (large) */
@media (min-width: 900px) {
  body { padding: 2rem 4rem; }
  section#offerings > div {
    grid-template-columns: repeat(3, 1fr);
  }
  section#gallery > div {
    display: flex;
    gap: 1rem;
  }
  section#gallery > div > figure {
    flex: 1;
  }
}

/* MEDIA QUERY (xl) */
@media (min-width: 1200px) {
  header { padding: 2rem 0; }
  header > h1 { font-size: 2.5rem; }
  section#gallery > div {
    display: flex;
    gap: 1rem;
  }
  section#gallery > div > figure {
    flex: 1;
  }
}