.private-page {
  overflow: hidden;
}

.private-page .container {
  width: min(100%, var(--container-max));
}

.private-hero__grid,
.private-building__grid,
.private-moment__grid,
.private-process__grid,
.private-prep__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  align-items: start;
}

.private-hero__copy {
  grid-column: 1 / span 7;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.private-hero__copy > * {
  min-width: 0;
  margin: 0;
}

.private-hero__label {
  background: var(--color-pink);
}

.private-hero h1 {
  max-width: 15ch;
}

.private-hero__lead {
  width: 100%;
  max-width: 58ch;
  padding: var(--space-5);
}

.private-hero__lead p {
  margin: 0;
}

.private-hero__actions {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
}

.private-hero__actions > * {
  min-width: 0;
  margin: 0;
}

.private-hero__media {
  grid-column: 8 / span 5;
  width: 100%;
  min-width: 0;
  margin: var(--space-5) 0 0;
}

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

.private-building__intro p {
  max-width: 52ch;
}

.private-building__label {
  margin-bottom: var(--space-4);
}

.private-building__cards {
  display: grid;
  grid-column: 6 / span 7;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: var(--space-4);
  min-width: 0;
}

.private-principle {
  display: flex;
  min-width: 0;
  min-height: 17rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-5);
  border: var(--border-width) solid var(--color-ink);
  box-shadow: var(--shadow-hard);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.private-principle > * {
  min-width: 0;
  margin: 0;
}

.private-principle:hover {
  box-shadow: var(--shadow-hard-hover);
  transform: translate(-2px, -2px);
}

.private-principle--paper { background: var(--color-paper-bright); }
.private-principle--yellow { background: var(--color-yellow); }
.private-principle--electric { background: var(--color-electric); }

.private-principle__number,
.private-step__number {
  font-family: var(--font-mono);
  font-size: 1.6rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
}

.private-principle h3 {
  font-size: clamp(1.45rem, 2.2vw, 2rem);
}

.private-principle p {
  max-width: 46ch;
}

.private-principle a {
  margin-top: auto;
}

.private-reasons__header {
  width: 100%;
  max-width: 56ch;
}

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

.private-reason {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-5);
  border: var(--border-width) solid var(--color-ink);
  box-shadow: var(--shadow-hard);
}

.private-reason > * {
  min-width: 0;
  margin: 0;
}

.private-reason--friends { background: var(--color-paper-bright); }
.private-reason--occasion { background: var(--color-yellow); transform: translateY(var(--space-4)); }
.private-reason--group { background: var(--color-electric); }
.private-reason--friends .label { background: var(--color-pink); }
.private-reason--occasion .label { background: var(--color-paper-bright); }
.private-reason--group .label { background: var(--color-acid); }

.private-reason p {
  max-width: 48ch;
}

.private-reasons__link {
  margin-top: var(--space-7);
}

.private-moment {
  background: var(--color-ink);
}

.private-moment__copy {
  display: flex;
  grid-column: 1 / span 5;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6);
  border: var(--border-width) solid var(--color-paper-bright);
  background: var(--color-ink);
}

.private-moment__copy > * {
  min-width: 0;
  margin: 0;
}

.private-moment__copy h2,
.private-moment__copy p {
  color: var(--color-paper-bright);
}

.private-moment__copy p {
  max-width: 48ch;
}

.private-moment__figure {
  position: relative;
  grid-column: 6 / span 7;
  width: 100%;
  min-width: 0;
  margin: var(--space-5) 0 0;
  overflow: visible;
}

.private-moment__figure img {
  border-radius: 1px;
}

.private-moment__caption {
  position: relative;
  width: min(100% - var(--space-5), 34ch);
  min-width: 0;
  margin: calc(var(--space-5) * -1) 0 0 var(--space-4);
  padding: var(--space-4);
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-paper-bright);
  box-shadow: var(--shadow-hard);
}

.private-moment__caption .eyebrow {
  display: flex;
  margin-bottom: var(--space-2);
}

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

.private-process__intro .lead {
  max-width: 54ch;
}

.private-process__steps {
  display: grid;
  grid-column: 6 / span 7;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: var(--space-3);
  min-width: 0;
}

.private-step {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4);
  border: var(--border-width) solid var(--color-ink);
  box-shadow: var(--shadow-hard);
}

.private-step > * {
  min-width: 0;
  margin: 0;
}

.private-step h3 {
  font-size: clamp(1.25rem, 1.8vw, 1.7rem);
}

.private-step p {
  max-width: 44ch;
}

.private-step a {
  margin-top: auto;
}

.private-step--paper { background: var(--color-paper-bright); }
.private-step--pink { background: var(--color-pink); }
.private-step--acid { background: var(--color-acid); }

.private-prep__media {
  grid-column: 1 / span 5;
  width: 100%;
  min-width: 0;
  margin: 0;
}

.private-prep__copy {
  grid-column: 6 / span 7;
  min-width: 0;
}

.private-prep__copy > p {
  max-width: 56ch;
}

.private-prep__list {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.private-prep-item {
  min-width: 0;
  padding-block: var(--space-4);
  border-top: var(--border-width) solid var(--color-ink);
}

.private-prep-item:last-child {
  border-bottom: var(--border-width) solid var(--color-ink);
}

.private-prep-item h3 {
  margin-top: var(--space-2);
  font-size: clamp(1.35rem, 2vw, 1.8rem);
}

.private-prep-item p {
  max-width: 46ch;
  margin-bottom: 0;
}

.private-faq__panel {
  width: min(100%, 51.25rem);
  margin-inline: auto;
}

.private-faq__intro {
  max-width: 52ch;
}

.private-faq__items {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
}

.private-faq__item {
  min-width: 0;
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-paper);
}

.private-faq__item summary {
  display: flex;
  min-height: 3rem;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  cursor: pointer;
  font-weight: 800;
  list-style: none;
}

.private-faq__item summary::-webkit-details-marker { display: none; }
.private-faq__item summary::after { content: '+'; flex: 0 0 auto; font-family: var(--font-mono); font-size: 1.5rem; }
.private-faq__item[open] summary::after { content: '−'; }

.private-faq__answer {
  padding: 0 var(--space-4) var(--space-4);
}

.private-faq__answer p {
  max-width: 52ch;
  margin: 0;
}

.private-cta {
  background: var(--color-pink);
}

.private-cta__content {
  display: flex;
  width: min(100%, 44ch);
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  margin-inline: auto;
  text-align: center;
}

.private-cta__content > * {
  min-width: 0;
  margin: 0;
}

.private-cta__content .button {
  background: var(--color-acid);
}

.private-form-section:focus { outline: none; }

.private-form__heading {
  max-width: 60ch;
  margin-bottom: var(--space-6);
}

.private-form__required {
  margin-bottom: 0;
  font-family: var(--font-mono);
  font-size: var(--font-size-small);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.private-form__required span,
.private-form label span { color: var(--color-pink); }

.private-form {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  padding: var(--space-6);
}

.private-form__helper {
  display: flex;
  grid-column: 9 / span 4;
  grid-row: 1;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  align-self: start;
  padding: var(--space-5);
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-paper);
}

.private-form__helper > * {
  min-width: 0;
  margin: 0;
}

.private-form__helper p { max-width: 36ch; }

.private-form__fields {
  display: grid;
  grid-column: 1 / span 8;
  grid-row: 1 / span 2;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  min-width: 0;
}

.private-form__fields > * { min-width: 0; }
.private-form__field--full { grid-column: 1 / -1; }

.private-form textarea { min-height: 9.5rem; overflow-wrap: anywhere; }

.private-form__action {
  display: flex;
  grid-column: 1 / span 8;
  grid-row: 3;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.private-form__feedback {
  width: 100%;
  min-width: 0;
  padding: var(--space-3) var(--space-4);
  border: var(--border-width) solid var(--color-ink);
  font-weight: 800;
  overflow-wrap: anywhere;
}

.private-form__feedback--error { background: var(--color-pink); }
.private-form__feedback--success { background: var(--color-acid); }

.private-closing__content {
  width: min(100%, 50ch);
}

.private-closing__content p { margin-bottom: 0; }

@media (max-width: 62rem) {
  .private-hero__grid,
  .private-building__grid,
  .private-moment__grid,
  .private-process__grid,
  .private-prep__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .private-hero__copy,
  .private-building__intro,
  .private-moment__copy,
  .private-process__intro,
  .private-prep__media {
    grid-column: 1 / -1;
  }

  .private-hero__media,
  .private-moment__figure,
  .private-prep__copy {
    grid-column: 1 / -1;
    margin-top: 0;
  }

  .private-hero h1 { max-width: 13ch; }
  .private-building__cards { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .private-building__cards > :last-child { grid-column: 1 / span 1; }
  .private-reasons__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .private-reason--group { grid-column: 1 / -1; }
  .private-reason--occasion { transform: translateY(var(--space-3)); }
  .private-process__steps { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .private-moment__copy { max-width: none; }

  .private-form { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .private-form__helper { grid-column: 1 / -1; grid-row: 1; }
  .private-form__fields { grid-column: 1 / -1; grid-row: 2; }
  .private-form__action { grid-column: 1 / -1; grid-row: 3; }
}

@media (max-width: 47.9375rem) {
  .private-hero__grid,
  .private-building__grid,
  .private-moment__grid,
  .private-process__grid,
  .private-prep__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-4);
  }

  .private-hero__copy,
  .private-hero__media,
  .private-building__intro,
  .private-building__cards,
  .private-moment__copy,
  .private-moment__figure,
  .private-process__intro,
  .private-process__steps,
  .private-prep__media,
  .private-prep__copy {
    grid-column: 1;
  }

  .private-hero__copy { gap: var(--space-4); }
  .private-hero h1 { max-width: 11ch; font-size: clamp(3.25rem, 14vw, 4.5rem); }
  .private-hero__lead { max-width: none; padding: var(--space-4); }
  .private-hero__actions, .private-hero__actions .button { width: 100%; }
  .private-hero__actions { align-items: stretch; }

  .private-building__cards,
  .private-reasons__cards,
  .private-process__steps {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-4);
  }

  .private-building__cards > :last-child,
  .private-reason--group { grid-column: 1; }
  .private-principle { min-height: 0; }
  .private-reason--occasion { transform: none; }
  .private-moment { padding-inline: 0; }
  .private-moment .container { padding-inline: 0; }
  .private-moment__copy { padding: var(--space-5) var(--container-padding); border-inline: 0; }
  .private-moment__figure { width: calc(100% - (var(--container-padding) * 2)); margin-inline: var(--container-padding); }
  .private-moment__caption { margin-left: var(--space-3); }
  .private-process__steps { gap: var(--space-3); }
  .private-prep__copy > p, .private-building__intro p, .private-reasons__header, .private-process__intro .lead { max-width: none; }
  .private-faq__panel { width: 100%; }
  .private-faq__item summary { padding: var(--space-3); }
  .private-cta__content { width: 100%; }
  .private-cta__content .button { width: 100%; }

  .private-form { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); padding: var(--space-5); }
  .private-form__helper, .private-form__fields, .private-form__action { grid-column: 1; }
  .private-form__helper { grid-row: 1; }
  .private-form__fields { grid-row: 2; grid-template-columns: minmax(0, 1fr); }
  .private-form__field--full { grid-column: 1; }
  .private-form__action { grid-row: 3; align-items: stretch; }
  .private-form__action button { width: 100%; }
  .private-closing__content { width: 100%; }
}

@media (max-width: 24.375rem) {
  .private-step { padding: var(--space-3); }
  .private-moment__caption { width: calc(100% - var(--space-3)); margin-left: var(--space-2); }
}
