:root {
  --ivory:       #F0EBE1;
  --parchment:   #E4DACE;
  --deep-parch:  #D5C9B8;
  --espresso:    #1F1810;
  --espresso-60: rgba(31,24,16,0.6);
  --espresso-30: rgba(31,24,16,0.3);
  --espresso-10: rgba(31,24,16,0.1);
  --terra:       #B5533C;
  --terra-light: #E8C4AF;
  --terra-pale:  #F5EAE2;
  --sage:        #5C7A69;
  --sage-light:  #ADC4B8;
  --sage-pale:   #E1EDE7;
  --sand:        #C9A882;
  --dark:        #17120D;
  --dark-2:      #221C15;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  background: var(--ivory);
  color: var(--espresso);
  font-family: 'Outfit', sans-serif;
  font-weight: 300;
  overflow-x: hidden;
}

/* ── Grain overlay ── */
body::after {
  content:'';
  position:fixed;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events:none;z-index:9000;opacity:0.6;
}

/* ── Typography ── */
.f-display { font-family: 'Fraunces', serif; }
.f-serif-i { font-family: 'Fraunces', serif; font-style: italic; }

/* ── Nav ── */
nav {
  position:fixed;top:0;left:0;right:0;z-index:500;
  padding: 0 3rem;
  height: 68px;
  display:flex;align-items:center;justify-content:space-between;
  background: var(--ivory);
  border-bottom: 1px solid var(--espresso-10);
  transition: box-shadow 0.4s;
}
nav.scrolled {
  box-shadow: 0 2px 24px rgba(31,24,16,0.08);
}
.nav-wordmark {
  font-family:'Fraunces',serif;
  font-weight:300;
  font-size:1.1rem;
  letter-spacing:0.04em;
  color:var(--espresso);
  text-decoration:none;
  white-space:nowrap;
}
.nav-links {
  display:flex;gap:2.5rem;list-style:none;
}
.nav-links a {
  font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;
  font-weight:500;color:var(--espresso);text-decoration:none;
  position:relative;padding-bottom:2px;
  transition:color 0.25s;
}
.nav-links a::after {
  content:'';position:absolute;bottom:0;left:0;width:0;height:1px;
  background:var(--terra);transition:width 0.3s ease;
}
.nav-links a:hover { color:var(--terra); }
.nav-links a:hover::after { width:100%; }
.nav-cta {
  display:inline-block;
  font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:500;
  border:1px solid var(--espresso);color:var(--espresso);
  padding:0.6rem 1.4rem;border-radius:2px;text-decoration:none;
  transition:background 0.3s,color 0.3s;
}
.nav-cta:hover { background:var(--espresso);color:var(--ivory); }
.hamburger { display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px; }
.hamburger span { display:block;width:22px;height:1px;background:var(--espresso);transition:all 0.3s; }

/* ── Buttons ── */
.btn-primary {
  display:inline-block;
  background:var(--espresso);color:var(--ivory);
  padding:1rem 2.6rem;border-radius:2px;
  font-size:0.75rem;letter-spacing:0.16em;text-transform:uppercase;font-weight:500;
  text-decoration:none;border:none;cursor:pointer;
  transition:background 0.3s,transform 0.25s;
}
.btn-primary:hover { background:var(--terra);transform:translateY(-2px); }

.btn-outline {
  display:inline-block;
  background:transparent;color:var(--espresso);
  padding:1rem 2.6rem;border-radius:2px;
  font-size:0.75rem;letter-spacing:0.16em;text-transform:uppercase;font-weight:500;
  text-decoration:none;border:1px solid var(--espresso);cursor:pointer;
  transition:background 0.3s,color 0.3s,transform 0.25s;
}
.btn-outline:hover { background:var(--espresso);color:var(--ivory);transform:translateY(-2px); }

.btn-terra {
  display:inline-block;
  background:var(--terra);color:var(--ivory);
  padding:1rem 2.6rem;border-radius:2px;
  font-size:0.75rem;letter-spacing:0.16em;text-transform:uppercase;font-weight:500;
  text-decoration:none;border:none;cursor:pointer;
  transition:background 0.3s,transform 0.25s;
}
.btn-terra:hover { background:#9c4632;transform:translateY(-2px); }

/* ── Section label ── */
.eyebrow {
  display:inline-block;
  font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;font-weight:600;
  color:var(--terra);margin-bottom:1.4rem;
}
.eyebrow-sage { color:var(--sage); }
.eyebrow-light { color:rgba(240,235,225,0.5); }

/* ── Scroll reveal ── */
.reveal { opacity:0;transform:translateY(28px);transition:opacity 0.75s ease,transform 0.75s ease; }
.reveal.on { opacity:1;transform:none; }
.d1{transition-delay:0.08s} .d2{transition-delay:0.16s} .d3{transition-delay:0.24s}
.d4{transition-delay:0.32s} .d5{transition-delay:0.4s}  .d6{transition-delay:0.48s}

/* ── Divider ── */
hr.thin { border:none;border-top:1px solid var(--espresso-10);margin:0; }
hr.thin-light { border:none;border-top:1px solid rgba(240,235,225,0.12);margin:0; }

/* ── Mobile nav ── */
#mob-menu {
  display:none;position:fixed;top:68px;left:0;right:0;z-index:499;
  background:rgba(240,235,225,0.97);backdrop-filter:blur(16px);
  padding:2rem 3rem;border-bottom:1px solid var(--espresso-10);
}
#mob-menu.open { display:flex;flex-direction:column;gap:1.4rem; }
#mob-menu a {
  font-size:1.1rem;font-weight:300;color:var(--espresso);text-decoration:none;
  font-family:'Fraunces',serif;letter-spacing:0.03em;
  border-bottom:1px solid var(--espresso-10);padding-bottom:1rem;
}

/* ═══════════════════════════════════
   HERO
═══════════════════════════════════ */
#home {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 50% 50%;
  align-items: center;
  background: var(--ivory);
  overflow: hidden;
}
/* Left text column */
.hero-text-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 9rem 3.5rem 5rem 3rem;
  position: relative;
  z-index: 2;
  background: var(--ivory);
}
/* Right photo column — two images side by side */
.hero-photo-col {
  display: flex;
  flex-direction: row;
  gap: 6px;
  padding: 0 0 13rem 1rem;
  align-items: flex-start;
  align-self: end;
  overflow: hidden;
}
.hero-bg-circle {
  position:absolute;border-radius:9999px;pointer-events:none;
}
.hero-heading {
  font-family:'Fraunces',serif;
  font-size: clamp(3.2rem,5.5vw,6rem);
  font-weight:200;
  line-height:0.97;
  letter-spacing:-0.02em;
  color:var(--espresso);
  margin-bottom: 2rem;
}
.hero-heading em {
  font-style:italic;
  color:var(--terra);
}
.hero-sub {
  font-size:1rem;color:var(--espresso-60);
  line-height:1.75;max-width:420px;
  font-weight:300;
}
.hero-tag-strip {
  display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:1.5rem;
}
.hero-tag {
  font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:500;
  border:1px solid var(--espresso-30);padding:0.4rem 1rem;border-radius:2px;
  color:var(--espresso);background:var(--ivory);
}
.hero-tag-link {
  text-decoration:none;
  transition:background 0.25s,border-color 0.25s,color 0.25s;
  cursor:pointer;
}
.hero-tag-link:hover {
  background:var(--espresso);
  color:var(--ivory);
  border-color:var(--espresso);
}

/* ═══════════════════════════════════
   MARQUEE
═══════════════════════════════════ */
.marquee-wrap { overflow:hidden;background:var(--espresso);padding:0.9rem 0;border-top:none; }
.marquee-inner { display:flex;gap:2.5rem;animation:slide 28s linear infinite;white-space:nowrap; }
@keyframes slide { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.marquee-item { font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:rgba(240,235,225,0.5);font-weight:400; }
.marquee-dot { color:var(--terra);font-size:0.7rem; }

/* ═══════════════════════════════════
   ABOUT
═══════════════════════════════════ */
#about { padding:8rem 3rem;background:var(--ivory); }
.about-grid { display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start;max-width:1200px;margin:0 auto; }
.about-img-wrap {
  position:relative;
}
.about-img-placeholder {
  width:100%;aspect-ratio:3/4;background:var(--parchment);border-radius:4px;overflow:hidden;
  position:relative;
}
.about-img-label {
  position:absolute;bottom:1.5rem;left:1.5rem;
  background:var(--terra);color:var(--ivory);
  font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;font-weight:500;
  padding:0.45rem 1rem;border-radius:2px;
}
.about-stat-row {
  display:flex;gap:3rem;margin-top:3rem;padding-top:2.5rem;border-top:1px solid var(--espresso-10);
}
.about-stat-num {
  font-family:'Fraunces',serif;font-size:2.8rem;font-weight:200;color:var(--espresso);line-height:1;
}
.about-stat-label {
  font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--espresso-60);margin-top:0.3rem;
}
.about-pull-quote {
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.4rem,2.2vw,1.8rem);font-weight:200;
  line-height:1.5;color:var(--espresso);
  border-left:2px solid var(--terra);padding-left:1.8rem;
  margin-bottom:2rem;
}
.values-grid { display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--espresso-10);margin-top:2.5rem;border:1px solid var(--espresso-10); }
.value-cell { background:var(--ivory);padding:1.4rem 1.2rem; }
.value-cell:hover { background:var(--terra-pale); }
.value-cell p:first-child { font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:600;color:var(--terra);margin-bottom:0.4rem; }
.value-cell p:last-child { font-size:0.88rem;color:var(--espresso-60);line-height:1.6; }

/* ═══════════════════════════════════
   OFFERINGS
═══════════════════════════════════ */
#offerings { padding:8rem 3rem;background:var(--parchment); }
.offerings-header { max-width:1200px;margin:0 auto 4rem;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap; }
.offerings-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--espresso-10);max-width:1200px;margin:0 auto;border:1px solid var(--espresso-10); }
.offering-card {
  background:var(--ivory);padding:2.5rem 2rem;
  transition:background 0.35s;
  cursor:default;position:relative;overflow:hidden;
}
.offering-card::before {
  content:'';position:absolute;bottom:0;left:0;width:0;height:2px;
  background:var(--terra);transition:width 0.4s ease;
}
.offering-card:hover { background:var(--terra-pale); }
.offering-card:hover::before { width:100%; }
.offering-num {
  font-family:'Fraunces',serif;font-size:0.75rem;font-weight:300;
  color:var(--espresso-30);margin-bottom:1.8rem;letter-spacing:0.08em;
}
.offering-icon { font-size:1.8rem;margin-bottom:1rem;display:block; }
.offering-title {
  font-family:'Fraunces',serif;font-size:1.45rem;font-weight:300;
  color:var(--espresso);margin-bottom:0.8rem;line-height:1.2;
  letter-spacing:-0.01em;
}
.offering-desc { font-size:0.92rem;color:var(--espresso-60);line-height:1.78;margin-bottom:1.5rem; }
.offering-link {
  font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:600;
  color:var(--terra);text-decoration:none;display:flex;align-items:center;gap:0.5rem;
  transition:gap 0.25s;
}
.offering-card:hover .offering-link { gap:0.9rem; }

/* ═══════════════════════════════════
   SHOP
═══════════════════════════════════ */
#shop { padding:8rem 3rem;background:var(--ivory); }
.shop-inner { max-width:1200px;margin:0 auto; }
.shop-header { display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem;flex-wrap:wrap;gap:1rem; }
.shop-tabs { display:flex;gap:0;border:1px solid var(--espresso-10);border-radius:2px;overflow:hidden; }
.shop-tab {
  font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:500;
  padding:0.55rem 1.2rem;cursor:pointer;border:none;background:transparent;
  color:var(--espresso-60);transition:background 0.2s,color 0.2s;
}
.shop-tab.active { background:var(--espresso);color:var(--ivory); }
.shop-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem; }
.shop-item { cursor:pointer; }
.shop-item-img {
  width:100%;aspect-ratio:5/4;background:var(--parchment);
  border-radius:2px;overflow:hidden;position:relative;margin-bottom:1rem;
}
.shop-item-img:hover .shop-img-overlay { opacity:1; }
.shop-img-overlay {
  position:absolute;inset:0;background:rgba(31,24,16,0.55);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity 0.3s;
}
.shop-img-overlay span {
  font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--ivory);font-weight:500;border:1px solid rgba(240,235,225,0.5);
  padding:0.5rem 1.1rem;
}
.shop-item-title { font-family:'Fraunces',serif;font-size:0.95rem;font-weight:300;color:var(--espresso);margin-bottom:0.2rem; }
.shop-item-type { font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--espresso-60); }
.shop-item-price { font-size:0.9rem;font-weight:500;color:var(--terra);margin-top:0.25rem; }

/* Shop SVG art placeholders */
.art-svg { width:100%;height:100%;display:block; }

/* ═══════════════════════════════════
   EVENTS
═══════════════════════════════════ */
#events { padding:8rem 3rem;background:var(--dark);color:var(--ivory); }
.events-inner { max-width:1200px;margin:0 auto; }
.events-grid { display:grid;grid-template-columns:1fr 2fr;gap:6rem;align-items:start; }
.event-list { display:flex;flex-direction:column;gap:0; }
.event-item {
  display:grid;grid-template-columns:80px 1fr auto;gap:1.5rem;align-items:center;
  padding:1.8rem 0;border-bottom:1px solid rgba(240,235,225,0.1);
  cursor:pointer;transition:background 0.25s;
  margin:0 -1rem;padding-left:1rem;padding-right:1rem;border-radius:2px;
}
.event-item:hover { background:rgba(181,83,60,0.08); }
.event-date-block { text-align:center; }
.event-date-day { font-family:'Fraunces',serif;font-size:2.2rem;font-weight:200;color:var(--terra);line-height:1; }
.event-date-mon { font-size:0.65rem;letter-spacing:0.15em;text-transform:uppercase;color:rgba(240,235,225,0.4); }
.event-name { font-family:'Fraunces',serif;font-size:1.1rem;font-weight:300;color:var(--ivory);margin-bottom:0.3rem; }
.event-meta { font-size:0.8rem;color:rgba(240,235,225,0.45); }
.event-tag {
  font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:500;
  padding:0.35rem 0.9rem;border-radius:2px;white-space:nowrap;
}
.event-tag-online { background:rgba(92,122,105,0.25);color:var(--sage-light); }
.event-tag-person { background:rgba(181,83,60,0.25);color:var(--terra-light); }
.events-featured {
  background:var(--dark-2);border:1px solid rgba(240,235,225,0.08);border-radius:4px;padding:3rem;
  position:sticky;top:90px;
}

/* ═══════════════════════════════════
   TESTIMONIALS
═══════════════════════════════════ */
#testimonials { padding:8rem 3rem;background:var(--ivory); }
.test-inner { max-width:1200px;margin:0 auto; }
.test-grid { display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);grid-auto-flow:column;gap:1px;background:var(--espresso-10);border:1px solid var(--espresso-10);margin-top:3.5rem; }
.test-card {
  background:var(--ivory);padding:2.5rem 2rem;
  transition:background 0.3s;
}
.test-card:hover { background:var(--sage-pale); }
.test-stars { color:var(--terra);font-size:0.8rem;letter-spacing:0.1rem;margin-bottom:1.5rem; }
.test-quote {
  font-family:'Fraunces',serif;font-style:italic;font-weight:200;
  font-size:1.05rem;line-height:1.65;color:var(--espresso);
  margin-bottom:2rem;
}
.test-author-name { font-weight:600;font-size:0.85rem;color:var(--espresso);margin-bottom:0.15rem; }
.test-author-role { font-size:0.75rem;color:var(--espresso-60);letter-spacing:0.05em; }
.test-avatar {
  width:40px;height:40px;border-radius:9999px;
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;font-size:1rem;font-weight:300;
  margin-bottom:1rem;
}

/* ═══════════════════════════════════
   RESOURCES
═══════════════════════════════════ */
#resources { padding:8rem 3rem;background:var(--parchment); }
.resources-inner { max-width:1200px;margin:0 auto; }
.resources-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3.5rem; }
.resource-card {
  background:var(--ivory);border:1px solid var(--espresso-10);border-radius:2px;
  padding:2rem 1.6rem;transition:transform 0.3s,box-shadow 0.3s;cursor:pointer;
  display:flex;flex-direction:column;
}
.resource-card:hover { transform:translateY(-6px);box-shadow:0 16px 48px rgba(31,24,16,0.1); }
.resource-type {
  font-size:0.65rem;letter-spacing:0.16em;text-transform:uppercase;font-weight:600;
  color:var(--sage);margin-bottom:1.2rem;
}
.resource-title {
  font-family:'Fraunces',serif;font-size:1.1rem;font-weight:300;
  color:var(--espresso);line-height:1.4;margin-bottom:0.8rem;flex:1;
}
.resource-desc { font-size:0.82rem;color:var(--espresso-60);line-height:1.65;margin-bottom:1.5rem; }
.resource-arrow { color:var(--terra);font-size:1rem;align-self:flex-start;transition:transform 0.25s; }
.resource-card:hover .resource-arrow { transform:translateX(5px); }

/* ═══════════════════════════════════
   FOOTER / CONTACT
═══════════════════════════════════ */
#contact { background:var(--dark);color:var(--ivory);padding:8rem 3rem 4rem; }
.contact-inner { max-width:1200px;margin:0 auto; }
.contact-grid { display:grid;grid-template-columns:1fr 1fr;gap:8rem;align-items:start;margin-bottom:6rem; }
.contact-heading {
  font-family:'Fraunces',serif;font-size:clamp(2.5rem,4vw,4rem);font-weight:200;
  line-height:1.1;color:var(--ivory);margin-bottom:1.5rem;
}
.contact-heading em { font-style:italic;color:var(--terra-light); }
.contact-detail { display:flex;align-items:flex-start;gap:0.8rem;margin-bottom:1rem; }
.contact-detail-icon { color:var(--terra);margin-top:1px;flex-shrink:0; }
.contact-detail-text { font-size:0.88rem;color:rgba(240,235,225,0.55);line-height:1.6; }
.form-label { font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:500;color:rgba(240,235,225,0.35);display:block;margin-bottom:0.5rem; }
.form-input {
  width:100%;background:rgba(240,235,225,0.05);
  border:none;border-bottom:1px solid rgba(240,235,225,0.15);
  color:var(--ivory);font-family:'Outfit',sans-serif;font-size:0.92rem;font-weight:300;
  padding:0.75rem 0;outline:none;transition:border-color 0.3s;
  margin-bottom:1.8rem;
}
.form-input::placeholder { color:rgba(240,235,225,0.25); }
.form-input:focus { border-color:var(--terra-light); }
select.form-input { cursor:pointer;appearance:none; }
textarea.form-input { resize:none;height:100px; }
.footer-bottom {
  border-top:1px solid rgba(240,235,225,0.08);
  padding-top:2rem;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
}
.footer-links { display:flex;gap:2rem; }
.footer-links a { font-size:0.72rem;color:rgba(240,235,225,0.3);text-decoration:none;letter-spacing:0.06em;transition:color 0.25s; }
.footer-links a:hover { color:rgba(240,235,225,0.6); }
.footer-copy { font-size:0.72rem;color:rgba(240,235,225,0.25);letter-spacing:0.06em; }

/* ── Social icons ── */
.social-row { display:flex;gap:0.8rem;margin-top:2rem; }
.social-btn {
  width:38px;height:38px;border:1px solid rgba(240,235,225,0.2);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:rgba(240,235,225,0.4);font-size:0.8rem;text-decoration:none;
  transition:border-color 0.25s,color 0.25s,background 0.25s;
}
.social-btn:hover { border-color:var(--terra-light);color:var(--terra-light);background:rgba(181,83,60,0.1); }

.btn-ghost-light {
  display:inline-flex;align-items:center;
  border:1px solid rgba(240,235,225,0.25);color:rgba(240,235,225,0.85);
  padding:0.55rem 1.3rem;border-radius:2px;
  font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:500;
  text-decoration:none;transition:border-color 0.25s,color 0.25s,background 0.25s;
}
.btn-ghost-terra { font-size:0.82rem;letter-spacing:0.06em;color:var(--terra-light);text-decoration:none;font-weight:500;transition:color 0.25s;padding:0;background:transparent;border:none;cursor:pointer;display:inline; }
.btn-ghost-terra:hover { color:#fff; }
.btn-ghost-light:hover { border-color:var(--terra-light);color:var(--terra-light);background:rgba(181,83,60,0.1); }

/* ── Responsive ── */
@media(max-width:1100px) {
  .offerings-grid { grid-template-columns:repeat(2,1fr); }
  .shop-grid { grid-template-columns:repeat(3,1fr); }
  .resources-grid { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:900px) {
  nav { padding:0 1.5rem; }
  .nav-links,.nav-cta { display:none; }
  .hamburger { display:flex; }
  #home { grid-template-columns:1fr; }
  .hero-text-col { padding:7rem 1.5rem 3rem; }
  .hero-photo-col { flex-direction:row;padding:0 1.5rem 3rem;gap:10px; }
  .hero-photo-col > div { height:220px !important;margin-top:0 !important; }
  .hero-heading { font-size:clamp(2.8rem,9vw,5rem); }
  #about,#offerings,#shop,#events,#testimonials,#resources,#contact { padding:5rem 1.5rem; }
  .about-grid { grid-template-columns:1fr;gap:3rem; }
  .events-grid { grid-template-columns:1fr;gap:3rem; }
  .events-featured { display:none; }
  .contact-grid { grid-template-columns:1fr;gap:3rem; }
  .shop-grid { grid-template-columns:repeat(2,1fr); }
  .test-grid { grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row; }
}
@media(max-width:640px) {
  .offerings-grid { grid-template-columns:1fr; }
  .resources-grid { grid-template-columns:1fr; }
  .shop-grid { grid-template-columns:repeat(2,1fr); }
  .event-item { grid-template-columns:60px 1fr; }
  .event-tag { display:none; }
}

/* hero photo col handled in main responsive block */

/* ── Success state ── */
#form-success { display:none; }

@keyframes fadeUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:none} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }