/* A final editorial layer shared by the public story, event and conversion pages. */
.public-about,
.public-events,
.public-connect,
.public-stories,
.public-policy,
.public-join,
.public-event-detail { background: #fffafd; }

.public-about .page-hero,
.public-events .page-hero,
.public-connect .page-hero,
.public-stories .page-hero,
.public-policy .page-hero { isolation: isolate; }

.public-events .page-hero,
.public-connect .page-hero,
.public-stories .page-hero,
.public-policy .page-hero {
  background-position: center, right 40%;
  background-repeat: no-repeat;
  background-size: 100% 100%, auto 126%;
}

.public-about .page-hero::before,
.public-events .page-hero::before,
.public-connect .page-hero::before,
.public-stories .page-hero::before,
.public-policy .page-hero::before {
  position: absolute;
  z-index: 1;
  inset: 1.2rem;
  border: 1px solid rgba(206, 151, 58, .34);
  border-radius: 0 72px 0 72px;
  content: "";
  pointer-events: none;
}

.public-about .page-hero-copy,
.public-events .page-hero-copy,
.public-connect .page-hero-copy,
.public-stories .page-hero-copy,
.public-policy .page-hero-copy {
  width: min(760px, 72%);
  padding: 1rem 0 1rem 1.7rem;
  border-left: 3px solid #c9973d;
}

.public-about .page-hero-copy::after,
.public-events .page-hero-copy::after,
.public-connect .page-hero-copy::after,
.public-stories .page-hero-copy::after,
.public-policy .page-hero-copy::after {
  display: block;
  width: 78px;
  height: 2px;
  margin-top: 1.5rem;
  background: linear-gradient(90deg, #b77b28, transparent);
  content: "";
}

/* About: make values and photography feel like an editorial feature. */
.public-about .editorial-kicker { position: relative; padding: 2rem; border-radius: 0 70px 0 0; background: #fae9ef; }
.public-about .principles-grid { gap: 1rem; overflow: visible; border: 0; background: transparent; }
.public-about .principles-grid article { position: relative; min-height: 315px; overflow: hidden; border: 1px solid rgba(183,123,40,.24); border-radius: 18px; box-shadow: 0 14px 34px rgba(89,48,64,.06); transition: transform .25s ease, box-shadow .25s ease; }
.public-about .principles-grid article::after { position: absolute; right: -34px; bottom: -52px; width: 120px; height: 120px; border: 1px solid rgba(183,123,40,.2); border-radius: 50%; content: ""; }
.public-about .principles-grid article:hover { transform: translateY(-5px); box-shadow: 0 20px 42px rgba(89,48,64,.11); }
.public-about .image-statement { position: relative; isolation: isolate; }
.public-about .image-statement::before { position: absolute; z-index: -1; top: -22px; bottom: 22px; left: -22px; width: 48%; border: 1px solid rgba(183,123,40,.5); border-radius: 30px 180px 30px 30px; content: ""; }

/* Experiences: a more browseable gallery of invitations. */
.public-events .event-filter-form { padding: 1.15rem; border-color: rgba(162,63,104,.2); background: rgba(255,255,255,.88); box-shadow: 0 18px 46px rgba(89,48,64,.08); backdrop-filter: blur(12px); }
.public-events .event-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.public-events .event-card { position: relative; border-radius: 22px; box-shadow: 0 16px 40px rgba(89,48,64,.08); }
.public-events .event-card-image { height: 260px; }
.public-events .event-card-image img { transition: transform .65s ease, filter .65s ease; }
.public-events .event-card:hover .event-card-image img { transform: scale(1.035); }
.public-events .event-card:nth-child(3n + 2) { transform: translateY(18px); }
.public-events .event-card:nth-child(3n + 2):hover { transform: translateY(12px); }

/* Stories: turn approved voices into a layered magazine wall. */
.public-stories .story-grid { align-items: start; gap: 1.6rem; }
.public-stories .story-card { position: relative; overflow: hidden; min-height: 300px; padding: 3rem 2.2rem 2.2rem; border-radius: 22px 70px 22px 22px; box-shadow: 0 15px 38px rgba(89,48,64,.07); }
.public-stories .story-card::before { position: absolute; top: .35rem; left: 1.2rem; color: rgba(162,63,104,.16); font: 6rem/1 Georgia,serif; content: "\201C"; }
.public-stories .story-card:nth-child(3n + 2) { margin-top: 2rem; background: #fff5f8; }
.public-stories .story-card:nth-child(3n) { background: #fffbf1; }

/* Connect: richer social doors with visible movement and stronger hierarchy. */
.public-connect .connect-grid { gap: 1.5rem; }
.public-connect .connect-grid a { min-height: 340px; border-radius: 24px 90px 24px 24px; transition: transform .3s ease, box-shadow .3s ease; }
.public-connect .connect-grid a::before { inset: 0 0 27%; transition: transform .7s ease, filter .7s ease; }
.public-connect .connect-grid a:hover { transform: translateY(-7px); box-shadow: 0 22px 50px rgba(89,48,64,.15); }
.public-connect .connect-grid a:hover::before { transform: scale(1.045); filter: saturate(1.06); }
.public-connect .connect-grid i { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(255,255,255,.75); border-radius: 50%; color: #fff; background: rgba(70,35,48,.35); backdrop-filter: blur(8px); }

/* Join and policy pages: make long-form tasks calmer and easier to scan. */
.public-join .form-intro { padding: 2rem; border: 1px solid rgba(183,123,40,.25); border-radius: 24px 80px 24px 24px; background: rgba(255,250,247,.85); box-shadow: 0 18px 46px rgba(89,48,64,.08); backdrop-filter: blur(10px); }
.public-join .application-promise { margin-top: 1rem; padding: 1rem; border: 1px solid rgba(162,63,104,.13); border-radius: 14px; background: rgba(255,255,255,.72); }
.public-join .form-card { border-top: 4px solid #c9973d; box-shadow: 0 24px 64px rgba(89,48,64,.12); }
.public-policy .policy-copy { padding: clamp(2rem, 5vw, 4.5rem); border: 1px solid rgba(183,123,40,.2); border-radius: 28px; background: #fff; box-shadow: 0 20px 55px rgba(89,48,64,.07); }
.public-policy .policy-copy h2 { padding-bottom: .7rem; border-bottom: 1px solid rgba(183,123,40,.24); }

/* Event invitations: quieter reading surface and a stronger booking anchor. */
.public-event-detail .event-hero::before { inset: 1.25rem; border-radius: 0 80px 0 80px; }
.public-event-detail .event-hero-copy { padding-left: 1.5rem; border-left: 3px solid #f1d385; }
.public-event-detail .event-body { padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid rgba(162,63,104,.12); border-radius: 24px; background: #fff; box-shadow: 0 16px 44px rgba(89,48,64,.06); }
.public-event-detail .booking-card { isolation: isolate; border-top: 4px solid #c9973d; background: #fff; box-shadow: 0 24px 58px rgba(89,48,64,.14); }
.public-event-detail .booking-card::after { position: absolute; z-index: 0; inset: 0 0 auto; height: 170px; background: var(--event-cover) center / cover no-repeat; content: ""; pointer-events: none; }
.public-event-detail .booking-card::before { z-index: 1; }
.public-event-detail .booking-card > * { position: relative; z-index: 2; }
.public-event-detail .album-image { transition: transform .3s ease, box-shadow .3s ease; }
.public-event-detail .album-image:hover { transform: translateY(-4px) rotate(0); box-shadow: 0 20px 44px rgba(87,53,63,.18); }

@media (max-width: 991px) {
  .public-events .event-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .public-events .event-card:nth-child(3n + 2), .public-events .event-card:nth-child(3n + 2):hover { transform: none; }
  .public-about .principles-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 767px) {
  .public-events .page-hero,
  .public-connect .page-hero,
  .public-stories .page-hero,
  .public-policy .page-hero { background-position: center, 72% center; background-size: 100% 100%, cover; }
  .public-about .page-hero-copy,
  .public-events .page-hero-copy,
  .public-connect .page-hero-copy,
  .public-stories .page-hero-copy,
  .public-policy .page-hero-copy { width: 100%; padding-left: 1rem; }
  .public-about .page-hero::before,
  .public-events .page-hero::before,
  .public-connect .page-hero::before,
  .public-stories .page-hero::before,
  .public-policy .page-hero::before { inset: .65rem; border-radius: 0 42px 0 42px; }
  .public-events .event-grid, .public-about .principles-grid { grid-template-columns: 1fr; }
  .public-stories .story-card:nth-child(3n + 2) { margin-top: 0; }
  .public-join .form-intro { position: static; }
  .public-event-detail .event-body { padding: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  .public-about .principles-grid article,
  .public-events .event-card-image img,
  .public-connect .connect-grid a,
  .public-connect .connect-grid a::before,
  .public-event-detail .album-image { transition: none; }
}
