.private-celebrations-page {
  background: var(--color-soft-ice);
}

.private-celebrations-page .pc-section-head {
  min-width: 0;
}

.private-celebrations-page .pc-text-link {
  display: inline-flex;
  width: fit-content;
  min-width: 0;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-midnight);
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: var(--weight-semibold);
  text-decoration: none;
  text-decoration-color: var(--color-electric-cyan);
  text-decoration-line: underline;
  text-underline-offset: 0.3em;
  transition: color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);
}

.private-celebrations-page .pc-text-link:hover {
  color: var(--color-electric-cyan);
  transform: translateY(-2px);
}

.private-celebrations-page .pc-text-link--ice {
  color: var(--color-soft-ice);
}

.private-celebrations-page .pc-light-button {
  position: relative;
  overflow: hidden;
}

.private-celebrations-page .pc-light-button::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: -100%;
  height: 2px;
  background: var(--color-white);
  content: "";
  transition: left var(--duration-base) var(--ease-out);
}

.private-celebrations-page .pc-light-button:hover::after {
  left: 0;
}

.pc-hero {
  position: relative;
  overflow: hidden;
  padding-block: clamp(5rem, 10vw, 9rem);
  background: var(--color-midnight);
}

.pc-hero::before {
  position: absolute;
  z-index: 0;
  width: 68vw;
  height: 2px;
  top: 49%;
  left: -7vw;
  background: linear-gradient(90deg, transparent, var(--color-electric-cyan), transparent);
  content: "";
  opacity: 0.72;
  transform: rotate(-20deg);
}

.pc-hero::after {
  position: absolute;
  z-index: 0;
  width: 38rem;
  height: 38rem;
  top: -15rem;
  right: -13rem;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--color-luminous-violet) 18%, transparent), transparent 68%);
  content: "";
}

.pc-hero__layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(26.25rem, 5fr) minmax(7.5rem, 1.2fr) minmax(0, 7fr);
  align-items: end;
  gap: var(--space-6);
}

.pc-hero__content,
.pc-hero__markers,
.pc-hero__media {
  min-width: 0;
  width: 100%;
}

.pc-hero__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.pc-hero__content > * {
  margin: 0;
}

.pc-hero h1 {
  max-width: 10ch;
  color: var(--color-white);
}

.pc-hero h1 span {
  color: var(--color-soft-ice);
}

.pc-hero__intro {
  max-width: 48ch;
  color: var(--color-text-on-dark);
  font-size: var(--text-intro);
  line-height: var(--leading-intro);
}

.pc-hero__actions {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-5);
}

.pc-hero__markers {
  display: flex;
  flex-direction: column;
  justify-content: end;
  gap: var(--space-5);
  padding-bottom: var(--space-5);
}

.pc-marker {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
  padding-left: var(--space-3);
  border-left: 1px solid var(--color-border-dark);
}

.pc-marker span,
.pc-service-label {
  color: var(--color-champagne-silver);
  font-size: var(--text-utility);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-label);
  line-height: var(--leading-utility);
  text-transform: uppercase;
}

.pc-marker strong {
  color: var(--color-soft-ice);
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  line-height: var(--leading-small);
}

.pc-hero__media {
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--color-electric-cyan) 58%, transparent);
  border-radius: var(--radius-lg);
  aspect-ratio: 3 / 2;
  transform: translateX(5%);
}

.pc-hero__media img,
.pc-space__media img,
.pc-entertainment__media img,
.pc-moment__media img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--duration-base) var(--ease-out);
}

.pc-hero__media img { object-position: 72% center; }

@media (hover: hover) and (pointer: fine) {
  .pc-hero__media:hover img,
  .pc-space__media:hover img,
  .pc-entertainment__media:hover img,
  .pc-moment__frame:hover .pc-moment__media img {
    transform: scale(1.02);
  }
}

.pc-occasions__head { width: min(100%, 44rem); }

.pc-occasions__head .text-intro { max-width: 58ch; }

.pc-occasions__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-7);
}

.pc-occasion-card,
.pc-guidance-card,
.pc-entertainment-card,
.pc-process-card {
  min-width: 0;
}

.pc-occasion-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6);
  border-top: 1px solid var(--color-champagne-silver);
  background: color-mix(in srgb, var(--color-white) 38%, transparent);
}

.pc-occasion-card > * { margin: 0; }
.pc-occasion-card h3 { max-width: 15ch; }
.pc-occasion-card p:not(.pc-card-number) { max-width: 40ch; }
.pc-occasion-card .pc-text-link { margin-top: auto; }

.pc-card-number,
.pc-process-number {
  color: var(--color-champagne-silver);
  font-family: var(--font-heading);
  font-size: var(--text-title-sm);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-heading);
  line-height: 1;
}

.pc-occasion-card--violet {
  background: linear-gradient(145deg, color-mix(in srgb, var(--color-luminous-violet) 16%, var(--color-white)), var(--color-white));
}

.pc-space {
  padding-block: var(--section-space-large);
  background: var(--color-midnight);
  color: var(--color-soft-ice);
}

.pc-space__layout {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: start;
  gap: clamp(var(--space-6), 5vw, var(--space-9));
}

.pc-space__media,
.pc-space__content { min-width: 0; width: 100%; }

.pc-space__media {
  overflow: hidden;
  border: 1px solid var(--color-border-dark);
  border-radius: var(--radius-lg);
  aspect-ratio: 4 / 5;
}

.pc-space__media img { object-position: left center; }

.pc-space__head { width: min(100%, 42rem); }
.pc-space__head .text-intro { max-width: 54ch; color: var(--color-text-on-dark-muted); }

.pc-space__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: var(--space-7);
  background: var(--color-border-dark);
}

.pc-service-card {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-5);
  background: var(--color-soft-ice);
  color: var(--color-ink);
}

.pc-service-card > * { margin: 0; }
.pc-service-card h3 { max-width: 16ch; }
.pc-service-card p:not(.pc-service-label) { max-width: 38ch; }
.pc-service-card .pc-text-link { margin-top: auto; }
.pc-service-card--dark { background: var(--color-midnight-elevated); color: var(--color-soft-ice); }
.pc-service-card--dark .pc-service-label { color: var(--color-electric-cyan); }

.pc-entertainment {
  position: relative;
  overflow: hidden;
}

.pc-entertainment::before {
  position: absolute;
  top: -13rem;
  left: 10%;
  width: 40rem;
  height: 32rem;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--color-luminous-violet) 17%, transparent), transparent 70%);
  content: "";
}

.pc-entertainment .container { position: relative; z-index: 1; }

.pc-entertainment__top {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  gap: clamp(var(--space-6), 6vw, var(--space-9));
}

.pc-entertainment__head,
.pc-entertainment__media { min-width: 0; width: 100%; }
.pc-entertainment__head .text-intro { max-width: 48ch; color: var(--color-text-on-dark-muted); }

.pc-entertainment__media {
  overflow: hidden;
  border-radius: var(--radius-md);
  aspect-ratio: 3 / 2;
}

.pc-entertainment__media img { object-position: 65% center; }

.pc-entertainment__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-7);
}

.pc-entertainment-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6);
  border-top: 1px solid var(--color-border-dark);
  background: var(--color-midnight-elevated);
}

.pc-entertainment-card > * { margin: 0; }
.pc-entertainment-card h3 { max-width: 16ch; }
.pc-entertainment-card p:not(.pc-card-number) { max-width: 42ch; color: var(--color-text-on-dark-muted); }
.pc-entertainment-card .pc-text-link { margin-top: auto; }
.pc-entertainment-card--active { border-top-color: var(--color-electric-cyan); }
.pc-entertainment-card--active .pc-card-number { color: var(--color-electric-cyan); }

.pc-process__head { width: min(100%, 43rem); }
.pc-process__head .text-intro { max-width: 58ch; }

.pc-process__grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-8);
}

.pc-process__grid::before {
  position: absolute;
  z-index: 0;
  top: 2rem;
  right: 5%;
  left: 5%;
  height: 1px;
  background: var(--color-border);
  content: "";
}

.pc-process-card {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--color-soft-ice);
}

.pc-process-card > * { margin: 0; }
.pc-process-card h3 { font-size: 1.15rem; }
.pc-process-card p:not(.pc-process-number) { max-width: 39ch; font-size: var(--text-small); line-height: var(--leading-small); }
.pc-process-card .pc-text-link { margin-top: auto; }
.pc-process-number { padding-block: var(--space-2); background: var(--color-soft-ice); }
.pc-process-card--dark { background: var(--color-midnight-elevated); color: var(--color-soft-ice); }
.pc-process-card--dark .pc-process-number { background: var(--color-midnight-elevated); color: var(--color-electric-cyan); }

.pc-guidance { background: var(--color-soft-ice); }
.pc-guidance__head { width: min(100%, 48rem); }
.pc-guidance__head .text-intro { max-width: 58ch; }

.pc-guidance__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-7);
}

.pc-guidance-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-white);
}

.pc-guidance-card > * { margin: 0; }
.pc-guidance-card h3 { max-width: 18ch; }
.pc-guidance-card p:not(.pc-service-label) { max-width: 42ch; }
.pc-guidance-card .pc-text-link { margin-top: auto; }
.pc-guidance-card--offset { transform: translateY(var(--space-6)); }
.pc-guidance-card--violet { background: linear-gradient(145deg, color-mix(in srgb, var(--color-luminous-violet) 13%, var(--color-white)), var(--color-white)); }

.pc-moment { padding-block: var(--section-space-large); background: var(--color-midnight); }
.pc-moment__frame { position: relative; min-width: 0; overflow: hidden; border-radius: var(--radius-lg); }
.pc-moment__media { width: 100%; min-width: 0; aspect-ratio: 16 / 9; }
.pc-moment__media img { object-position: 70% center; }

.pc-moment__panel {
  position: absolute;
  bottom: var(--space-7);
  left: var(--space-7);
  display: flex;
  width: min(40%, 31rem);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6);
  background: color-mix(in srgb, var(--color-midnight-elevated) 95%, transparent);
  color: var(--color-soft-ice);
}

.pc-moment__panel > * { margin: 0; }
.pc-moment__panel h2 { max-width: 15ch; font-size: clamp(2rem, 3.4vw, 3rem); }
.pc-moment__panel > p:not(.eyebrow) { max-width: 47ch; }

.pc-moment__actions {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.pc-moment__actions p { margin: 0; color: var(--color-text-on-dark-muted); font-size: var(--text-small); line-height: var(--leading-small); }

.pc-inquiry__head { width: min(100%, 43rem); }
.pc-inquiry__head .text-intro { max-width: 56ch; }

.pc-inquiry__layout {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
  align-items: start;
  gap: clamp(var(--space-6), 5vw, var(--space-9));
  margin-top: var(--space-7);
}

.pc-inquiry__form,
.pc-inquiry__notes { min-width: 0; width: 100%; }

.pc-inquiry__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.pc-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

.pc-form-grid > * { min-width: 0; width: 100%; }
.pc-form-grid__message { grid-column: 1 / -1; }
.pc-optional { color: var(--color-text-muted); font-weight: var(--weight-regular); }

.pc-field-error {
  display: none;
  margin: 0;
  color: #9c3128;
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  line-height: var(--leading-small);
}

.field.is-invalid .pc-field-error { display: block; }
.field.is-invalid input,
.field.is-invalid select,
.field.is-invalid textarea { border-color: #9c3128; }

.pc-form-action {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.pc-form-status,
.pc-alternative-contact { margin: 0; font-size: var(--text-small); line-height: var(--leading-small); }
.pc-form-status { min-height: 1.5em; font-weight: var(--weight-medium); }
.pc-alternative-contact { color: var(--color-text-muted); }
.pc-alternative-contact a { color: var(--color-ink); font-weight: var(--weight-semibold); }

.pc-inquiry__notes {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding-top: var(--space-5);
}

.pc-inquiry-note {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  width: 100%;
  padding-left: var(--space-4);
  border-left: 1px solid var(--color-champagne-silver);
}

.pc-inquiry-note > * { min-width: 0; }
.pc-inquiry-note > span { color: var(--color-champagne-silver); font-family: var(--font-heading); font-weight: var(--weight-semibold); }
.pc-inquiry-note h3,
.pc-inquiry-note p { margin: 0; }
.pc-inquiry-note h3 { font-size: var(--text-body); }
.pc-inquiry-note p { margin-top: var(--space-2); max-width: 35ch; font-size: var(--text-small); line-height: var(--leading-small); }

@media (max-width: 68.74rem) {
  .pc-hero__layout { grid-template-columns: minmax(0, 1fr) minmax(8rem, 0.28fr); }
  .pc-hero__media { grid-column: 1 / -1; transform: none; }
  .pc-hero__content { grid-column: 1; }
  .pc-hero__markers { grid-column: 2; }
  .pc-process__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pc-process__grid::before { display: none; }
  .pc-process-card:last-child { grid-column: 1 / -1; width: 50%; }
}

@media (max-width: 61.24rem) {
  .pc-space__layout { grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); gap: var(--space-5); }
  .pc-space__grid { grid-template-columns: minmax(0, 1fr); }
  .pc-entertainment__top { grid-template-columns: minmax(0, 1fr); }
  .pc-entertainment__media { order: 2; }
  .pc-entertainment__grid { grid-template-columns: minmax(0, 1fr); }
  .pc-entertainment-card h3 { max-width: 25ch; }
  .pc-entertainment-card p:not(.pc-card-number) { max-width: 52ch; }
}

@media (max-width: 57.49rem) {
  .pc-occasions__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pc-occasions__grid > :last-child { grid-column: 1 / -1; }
  .pc-inquiry__layout { grid-template-columns: minmax(0, 1fr); }
  .pc-inquiry__notes { padding-top: 0; }
  .pc-moment__panel { position: static; width: 100%; padding: var(--space-6); }
  .pc-moment__media { aspect-ratio: 3 / 2; }
}

@media (max-width: 54.99rem) {
  .pc-guidance__grid { grid-template-columns: minmax(0, 1fr); }
  .pc-guidance-card--offset { transform: none; }
}

@media (max-width: 47.49rem) {
  .pc-hero { padding-block: var(--section-space); }
  .pc-hero::before { top: auto; right: 0; bottom: 0; left: 0; width: 100%; transform: none; }
  .pc-hero__layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .pc-hero__content,
  .pc-hero__markers,
  .pc-hero__media { grid-column: 1; }
  .pc-hero h1 { max-width: 11ch; }
  .pc-hero__intro { max-width: 100%; font-size: var(--text-body); line-height: var(--leading-body); }
  .pc-hero__markers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); padding-bottom: 0; }
  .pc-hero__media { aspect-ratio: 4 / 5; }
  .pc-hero__media img { object-position: 68% center; }
  .pc-occasions__grid,
  .pc-space__layout,
  .pc-entertainment__grid,
  .pc-process__grid,
  .pc-form-grid { grid-template-columns: minmax(0, 1fr); }
  .pc-occasions__grid > :last-child,
  .pc-process-card:last-child,
  .pc-form-grid__message { grid-column: auto; width: 100%; }
  .pc-space__media { aspect-ratio: 4 / 5; }
  .pc-space__layout { gap: var(--space-7); }
  .pc-space__content { display: flex; flex-direction: column; gap: var(--space-6); }
  .pc-space__content > * { margin: 0; }
  .pc-space__grid { margin-top: 0; }
  .pc-entertainment__top { gap: var(--space-6); }
  .pc-entertainment__media { aspect-ratio: 3 / 2; }
  .pc-process__grid { margin-top: var(--space-6); padding-left: 2.25rem; gap: var(--space-5); }
  .pc-process__grid::before { display: block; top: 0; bottom: 0; left: 0.65rem; width: 2px; height: auto; background: var(--color-electric-cyan); }
  .pc-process-card { padding: var(--space-5); border: 1px solid var(--color-border); }
  .pc-process-number { position: relative; margin-left: -3.1rem; padding: 0; background: transparent; }
  .pc-process-card--dark .pc-process-number { background: transparent; }
  .pc-guidance__grid { margin-top: var(--space-6); }
  .pc-moment { padding-block: var(--section-space); }
  .pc-moment__frame { overflow: visible; border-radius: 0; }
  .pc-moment__media { overflow: hidden; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
  .pc-moment__panel { gap: var(--space-4); }
  .pc-moment__panel h2 { max-width: 100%; }
  .pc-moment__actions .button { width: min(100%, 20rem); }
  .pc-inquiry__layout { margin-top: var(--space-6); }
  .pc-inquiry__form { padding: var(--space-5); }
  .pc-form-grid { gap: var(--space-4); }
  .pc-form-action .button { width: min(100%, 22.5rem); }
}

@media (prefers-reduced-motion: reduce) {
  .private-celebrations-page .pc-text-link:hover,
  .pc-hero__media:hover img,
  .pc-space__media:hover img,
  .pc-entertainment__media:hover img,
  .pc-moment__frame:hover .pc-moment__media img { transform: none; }
}
