.private-events-page {
  --private-rule: var(--color-soft-silver);
  overflow: hidden;
}

.private-events-page .private-section {
  border-top: 1px solid var(--private-rule);
}

.private-events-page .private-section:first-child {
  border-top: 0;
}

.private-events-page .private-section-number,
.private-events-page .private-item-number {
  margin: 0;
  color: var(--color-cobalt);
  font-family: var(--font-heading);
  font-size: clamp(4.5rem, 10vw, 9rem);
  font-weight: 600;
  letter-spacing: -0.07em;
  line-height: 0.78;
  font-variant-numeric: tabular-nums;
}

.private-events-page .private-item-number {
  font-size: 2.1rem;
  line-height: 1;
  letter-spacing: -0.05em;
}

.private-events-page .private-coral-label {
  margin: 0;
  color: var(--color-muted-coral);
  font-size: var(--text-meta);
  font-weight: 600;
  letter-spacing: var(--tracking-meta);
  line-height: var(--leading-meta);
  text-transform: uppercase;
}

.private-events-page .private-text-link,
.private-events-page .private-inverse-link {
  position: relative;
  display: inline;
  text-decoration: none;
}

.private-events-page .private-text-link::after,
.private-events-page .private-inverse-link::after {
  position: absolute;
  right: 0;
  bottom: -0.18em;
  left: 0;
  height: 1px;
  transform: scaleX(0);
  transform-origin: left center;
  background: currentColor;
  content: "";
  transition: transform var(--duration-base) var(--ease-out);
}

.private-events-page .private-text-link:hover::after,
.private-events-page .private-inverse-link:hover::after {
  transform: scaleX(1);
}

.private-events-page .private-image {
  width: 100%;
  overflow: hidden;
  background: var(--color-soft-silver);
}

.private-events-page .private-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--duration-base) var(--ease-out);
}

@media (hover: hover) and (pointer: fine) {
  .private-events-page .private-image:hover img {
    transform: scale(1.025);
  }
}

.private-events-page .private-reveal {
  opacity: 0;
  transform: translateY(1rem);
  transition: opacity 220ms var(--ease-out), transform 220ms var(--ease-out);
}

.private-events-page .private-reveal.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

.private-hero {
  padding-block: 4rem var(--section-space);
}

.private-hero__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: center;
  min-height: 45rem;
}

.private-hero__copy {
  grid-column: 1 / span 5;
  min-width: 0;
}

.private-hero__copy h1 {
  max-width: 38.75rem;
}

.private-hero__copy .lead {
  max-width: 33.75rem;
}

.private-hero__actions {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
}

.private-hero__figure {
  grid-column: 6 / span 7;
  width: 100%;
  min-width: 0;
  margin: 0;
}

.private-hero__image {
  height: 42rem;
}

.private-hero__image img {
  object-position: 58% 50%;
}

.private-occasions__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 3rem 1.5rem;
}

.private-occasions__intro {
  grid-column: 1 / span 5;
  min-width: 0;
}

.private-occasions__intro .lead {
  max-width: 35rem;
}

.private-occasions__list {
  display: grid;
  grid-column: 1 / span 9;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  min-width: 0;
}

.private-occasion {
  min-width: 0;
  padding: 2rem 2rem 2rem 0;
  border-top: 1px solid var(--private-rule);
}

.private-occasion:nth-child(even) {
  padding-right: 0;
  padding-left: 2rem;
  border-left: 1px solid var(--private-rule);
}

.private-occasion p:not(.private-item-number) {
  max-width: 26.25rem;
}

.private-occasions__figure {
  grid-column: 10 / span 3;
  width: 100%;
  min-width: 0;
  margin: 4rem 0 0;
}

.private-portrait-image {
  aspect-ratio: 4 / 5;
}

.private-portrait-image img {
  object-position: 50% 38%;
}

.private-delivery__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: start;
}

.private-delivery__intro {
  grid-column: 1 / span 4;
  min-width: 0;
}

.private-delivery__intro .lead {
  max-width: 31rem;
}

.private-delivery__items {
  display: grid;
  grid-column: 5 / span 8;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
}

.private-delivery__item {
  min-width: 0;
  padding: 1.5rem;
  border-top: 1px solid var(--private-rule);
  border-left: 1px solid var(--private-rule);
  transition: border-color var(--duration-fast) var(--ease-out);
}

.private-delivery__item:first-child {
  border-left: 0;
}

.private-delivery__item h3 {
  font-size: var(--text-subsection);
}

.private-delivery__item p:not(.eyebrow):not(.private-coral-label) {
  max-width: 18.125rem;
}

.private-delivery__item:hover {
  border-top-color: var(--color-cobalt);
}

.private-atmosphere__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: start;
}

.private-atmosphere__copy {
  grid-column: 1 / span 4;
  min-width: 0;
}

.private-atmosphere__copy .lead {
  max-width: 35rem;
}

.private-atmosphere__note {
  max-width: 26.25rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--private-rule);
}

.private-atmosphere__note h3 {
  font-size: var(--text-subsection);
}

.private-atmosphere__figure {
  grid-column: 6 / span 7;
  width: 100%;
  min-width: 0;
  margin: 2rem 0 0;
}

.private-table-image {
  aspect-ratio: 3 / 2;
}

.private-table-image img {
  object-position: 50% 48%;
}

.private-caption-detail {
  max-width: 31rem;
  margin-top: 0.75rem;
  color: var(--color-charcoal-soft);
  font-size: 0.875rem;
}

.private-inspirations__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 2rem 1.5rem;
}

.private-inspirations__intro {
  grid-column: 1 / span 5;
  min-width: 0;
}

.private-inspirations__intro .lead {
  max-width: 35rem;
}

.private-filters {
  display: flex;
  grid-column: 8 / span 5;
  min-width: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-self: end;
  gap: 0.5rem;
}

.private-filter {
  min-width: 0;
  min-height: 2.75rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--color-charcoal);
  border-radius: var(--radius-default);
  background: transparent;
  color: var(--color-charcoal);
  font-size: var(--text-button);
  font-weight: 600;
  line-height: 1;
  transition: background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);
}

.private-filter:hover,
.private-filter.is-active {
  border-color: var(--color-cobalt);
  background: var(--color-cobalt);
  color: var(--color-white);
}

.private-filter-status {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--color-charcoal-soft);
  font-size: var(--text-meta);
  font-weight: 600;
  letter-spacing: var(--tracking-meta);
  line-height: var(--leading-meta);
  text-transform: uppercase;
}

.private-inspirations__list {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 2rem 1.5rem;
  min-width: 0;
}

.private-inspiration {
  min-width: 0;
  padding-top: 1.5rem;
  border-top: 1px solid var(--private-rule);
}

.private-inspiration:nth-child(1) { grid-column: 1 / span 7; }
.private-inspiration:nth-child(2) { grid-column: 9 / span 4; }
.private-inspiration:nth-child(3) { grid-column: 4 / span 7; }
.private-inspiration:nth-child(1) p:not(.meta) { max-width: 32.5rem; }
.private-inspiration:nth-child(2) p:not(.meta) { max-width: 24rem; }
.private-inspiration:nth-child(3) p:not(.meta) { max-width: 30rem; }

.private-process__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: start;
}

.private-process__intro {
  grid-column: 1 / span 3;
  min-width: 0;
}

.private-process__intro .lead {
  max-width: 28.125rem;
}

.private-process__steps {
  display: grid;
  grid-column: 4 / span 9;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-width: 0;
  border-top: 1px solid var(--private-rule);
}

.private-process__step {
  min-width: 0;
  padding: 1.5rem 1.25rem 0;
  border-left: 1px solid var(--private-rule);
}

.private-process__step:first-child {
  border-left: 0;
}

.private-process__step h3 {
  font-size: var(--text-subsection);
}

.private-process__step p:not(.private-item-number) {
  max-width: 15.625rem;
}

.private-scale {
  padding-block: var(--section-space);
}

.private-scale__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: end;
}

.private-scale__copy {
  grid-column: 1 / span 7;
  min-width: 0;
}

.private-scale__copy .lead {
  max-width: 38.75rem;
}

.private-scale__link {
  grid-column: 9 / span 4;
  min-width: 0;
  padding-left: 1.5rem;
  border-left: 1px solid rgba(255, 255, 255, 0.32);
}

.private-scale__link p:not(.eyebrow) {
  max-width: 18.75rem;
}

.private-inverse-link {
  color: var(--color-white);
}

.private-inverse-link:hover {
  color: var(--color-white);
}

.private-inverse-link::after {
  background: var(--color-cobalt);
}

.private-faq__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: start;
}

.private-faq__intro {
  grid-column: 1 / span 4;
  min-width: 0;
}

.private-faq__intro .lead {
  max-width: 28.75rem;
}

.private-faq__items {
  display: grid;
  grid-column: 5 / span 8;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
}

.private-faq__item {
  min-width: 0;
  padding: 1.5rem;
  border-top: 1px solid var(--private-rule);
  border-left: 1px solid var(--private-rule);
}

.private-faq__item:first-child {
  border-left: 0;
}

.private-faq__item h3 {
  font-size: var(--text-subsection);
}

.private-faq__item p {
  max-width: 17.5rem;
}

.private-brief-list {
  display: grid;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--color-charcoal-soft);
  font-size: var(--text-meta);
  font-weight: 600;
  letter-spacing: var(--tracking-meta);
  line-height: var(--leading-meta);
  text-transform: uppercase;
}

.private-contact {
  padding-block: var(--section-space);
}

.private-contact__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 3rem 1.5rem;
  align-items: start;
}

.private-contact__invitation {
  grid-column: 1 / span 4;
  min-width: 0;
}

.private-contact__invitation .lead {
  max-width: 26.875rem;
}

.private-contact__details {
  max-width: 26.875rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.32);
}

.private-contact__details h3 {
  font-size: var(--text-subsection);
}

.private-contact__form {
  display: flex;
  grid-column: 6 / span 7;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: 1.5rem;
  padding: 2rem;
  background: var(--color-warm-white);
  color: var(--color-charcoal);
}

.private-contact__form h3 {
  color: var(--color-charcoal);
  font-size: var(--text-subsection);
}

.private-contact__form p {
  color: var(--color-charcoal-soft);
}

.private-form__intro {
  min-width: 0;
}

.private-form__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.5rem;
  min-width: 0;
}

.private-form-field {
  min-width: 0;
}

.private-form-field--wide {
  grid-column: 1 / -1;
}

.private-form-field label {
  display: block;
  margin-bottom: 0.5rem;
  color: var(--color-charcoal);
  font-size: var(--text-meta);
  font-weight: 600;
  letter-spacing: var(--tracking-meta);
  line-height: var(--leading-meta);
  text-transform: uppercase;
}

.private-form-field input,
.private-form-field textarea {
  min-height: 3rem;
}

.private-form-field textarea {
  min-height: 8.75rem;
}

.private-field-error {
  min-height: 1.2em;
  margin: 0.5rem 0 0;
  color: #9b2c22 !important;
  font-size: 0.8125rem;
  line-height: 1.3;
}

.private-form__action {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}

.private-form-status {
  min-width: 0;
  margin: 0;
  color: var(--color-charcoal-soft);
}

@media (max-width: 1119px) {
  .private-hero__grid,
  .private-occasions__grid,
  .private-delivery__grid,
  .private-atmosphere__grid,
  .private-inspirations__grid,
  .private-process__grid,
  .private-scale__grid,
  .private-faq__grid,
  .private-contact__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 1.25rem;
  }

  .private-hero__copy { grid-column: 1 / span 4; }
  .private-hero__figure { grid-column: 5 / span 4; }
  .private-hero__image { height: 36rem; }
  .private-occasions__intro { grid-column: 1 / span 5; }
  .private-occasions__list { grid-column: 1 / span 5; }
  .private-occasions__figure { grid-column: 6 / span 3; }
  .private-delivery__intro { grid-column: 1 / -1; }
  .private-delivery__items { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .private-delivery__item:nth-child(3) { grid-column: 1 / span 2; border-left: 0; }
  .private-delivery__item p:not(.eyebrow):not(.private-coral-label) { max-width: 31rem; }
  .private-atmosphere__copy { grid-column: 1 / span 4; }
  .private-atmosphere__figure { grid-column: 5 / span 4; }
  .private-inspirations__intro { grid-column: 1 / span 4; }
  .private-filters { grid-column: 5 / span 4; }
  .private-inspirations__list { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .private-inspiration:nth-child(1) { grid-column: 1 / span 5; }
  .private-inspiration:nth-child(2) { grid-column: 6 / span 3; }
  .private-inspiration:nth-child(3) { grid-column: 3 / span 5; }
  .private-process__intro { grid-column: 1 / -1; }
  .private-process__steps { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .private-process__step:nth-child(3) { border-left: 0; border-top: 1px solid var(--private-rule); padding-top: 1.5rem; }
  .private-process__step:nth-child(4) { border-top: 1px solid var(--private-rule); padding-top: 1.5rem; }
  .private-scale__copy { grid-column: 1 / -1; }
  .private-scale__link { grid-column: 1 / -1; max-width: 32rem; padding-top: 1.5rem; padding-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.32); border-left: 0; }
  .private-faq__intro { grid-column: 1 / -1; }
  .private-faq__items { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .private-faq__item:nth-child(3) { grid-column: 1 / span 2; border-top: 1px solid var(--private-rule); border-left: 0; }
  .private-contact__invitation { grid-column: 1 / -1; }
  .private-contact__form { grid-column: 1 / -1; }
}

@media (max-width: 859px) {
  .private-occasions__list { grid-column: 1 / -1; }
  .private-occasions__figure { grid-column: 1 / span 4; margin-top: 0; }
  .private-atmosphere__copy { grid-column: 1 / -1; }
  .private-atmosphere__figure { grid-column: 1 / -1; margin-top: 0; }
  .private-inspirations__intro { grid-column: 1 / -1; }
  .private-filters { grid-column: 1 / -1; justify-content: flex-start; }
  .private-inspiration:nth-child(1),
  .private-inspiration:nth-child(2),
  .private-inspiration:nth-child(3) { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
  .private-events-page .private-section-number { font-size: clamp(4.5rem, 24vw, 6rem); }
  .private-events-page .private-item-number { font-size: 4.5rem; }
  .private-hero { padding-top: 2rem; }
  .private-hero__grid,
  .private-occasions__grid,
  .private-delivery__grid,
  .private-atmosphere__grid,
  .private-inspirations__grid,
  .private-process__grid,
  .private-scale__grid,
  .private-faq__grid,
  .private-contact__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    min-height: 0;
  }

  .private-hero__copy,
  .private-hero__figure,
  .private-occasions__intro,
  .private-occasions__list,
  .private-occasions__figure,
  .private-delivery__intro,
  .private-delivery__items,
  .private-atmosphere__copy,
  .private-atmosphere__figure,
  .private-inspirations__intro,
  .private-filters,
  .private-inspirations__list,
  .private-process__intro,
  .private-process__steps,
  .private-scale__copy,
  .private-scale__link,
  .private-faq__intro,
  .private-faq__items,
  .private-contact__invitation,
  .private-contact__form {
    grid-column: 1;
  }

  .private-hero__image { height: auto; aspect-ratio: 4 / 5; }
  .private-hero__copy .lead,
  .private-occasions__intro .lead,
  .private-delivery__intro .lead,
  .private-atmosphere__copy .lead,
  .private-inspirations__intro .lead,
  .private-process__intro .lead,
  .private-scale__copy .lead,
  .private-faq__intro .lead,
  .private-contact__invitation .lead { max-width: 100%; }
  .private-hero__actions { align-items: stretch; }
  .private-hero__actions .button { width: 100%; }
  .private-hero__actions .private-text-link { min-height: 2.75rem; display: inline-flex; align-items: center; }
  .private-occasions__list { grid-template-columns: minmax(0, 1fr); }
  .private-occasion,
  .private-occasion:nth-child(even) { padding: 1.75rem 0; border-left: 0; }
  .private-occasions__figure { width: 100%; margin: 0; }
  .private-delivery__items { grid-template-columns: minmax(0, 1fr); }
  .private-delivery__item,
  .private-delivery__item:first-child,
  .private-delivery__item:nth-child(3) { grid-column: 1; padding: 1.75rem 0; border-left: 0; }
  .private-delivery__item + .private-delivery__item { border-top: 1px solid var(--private-rule); }
  .private-atmosphere__figure { margin: 0; }
  .private-inspirations__list { grid-template-columns: minmax(0, 1fr); }
  .private-inspiration:nth-child(1),
  .private-inspiration:nth-child(2),
  .private-inspiration:nth-child(3) { grid-column: 1; }
  .private-filters { justify-content: flex-start; }
  .private-filter { min-height: 2.75rem; }
  .private-process__steps { grid-template-columns: minmax(0, 1fr); border-top: 0; }
  .private-process__step,
  .private-process__step:first-child,
  .private-process__step:nth-child(3),
  .private-process__step:nth-child(4) { padding: 1.75rem 0; border-top: 1px solid var(--private-rule); border-left: 0; }
  .private-scale { padding-block: 4rem; }
  .private-scale__link { max-width: 100%; }
  .private-faq__items { grid-template-columns: minmax(0, 1fr); }
  .private-faq__item,
  .private-faq__item:first-child,
  .private-faq__item:nth-child(3) { grid-column: 1; padding: 1.75rem 0; border-left: 0; }
  .private-faq__item + .private-faq__item { border-top: 1px solid var(--private-rule); }
  .private-contact { padding-block: 4rem; }
  .private-contact__form { padding: 1.25rem; }
  .private-form__fields { grid-template-columns: minmax(0, 1fr); }
  .private-form-field--wide { grid-column: 1; }
  .private-form__action { align-items: stretch; }
  .private-form__action .button { width: 100%; min-height: 3.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  .private-events-page .private-reveal { opacity: 1; transform: none; }
  .private-events-page .private-image img { transition: none; }
}
