.gp-page {
  background: var(--color-canvas);
  padding-block: var(--space-7);
}

.gp-page .gp-section + .gp-section {
  margin-top: var(--space-8);
}

.gp-page .gp-container {
  width: min(calc(100% - 2rem), 90rem);
  padding: 0;
}

.gp-page .cell-grid > .cell:not(:first-child) {
  margin-top: 0;
}

.gp-page .cell-grid > .cell {
  margin-left: -1px;
}

.gp-page .cell-grid > .cell:first-child {
  margin-left: 0;
}

.gp-page .cell-grid > .cell:nth-child(n + 2) {
  margin-top: -1px;
}

.gp-page .cell h2,
.gp-page .cell h3,
.gp-page .cell p {
  margin: 0;
}

.gp-page .gp-section-head {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
}

.gp-page .gp-section-head > * {
  min-width: 0;
}

.gp-page .gp-section-head h2 {
  max-width: 46ch;
  font-size: var(--text-page-title);
}

.gp-page .gp-hero__grid {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: stretch;
}

.gp-page .gp-hero__copy {
  grid-column: 1;
  grid-row: 1 / span 2;
  display: flex;
  min-height: 39rem;
  align-items: flex-end;
}

.gp-page .gp-hero__copy-flow,
.gp-page .gp-hero__status-flow,
.gp-page .gp-card-flow,
.gp-page .gp-copy-flow,
.gp-page .gp-note-flow,
.gp-page .gp-final__content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.gp-page .gp-hero__copy-flow {
  max-width: 56ch;
}

.gp-page .gp-hero__copy-flow .display-title {
  max-width: 24ch;
  margin: 0;
}

.gp-page .gp-hero__copy-flow .lead {
  max-width: 56ch;
  margin: 0;
}

.gp-page .gp-hero__support {
  max-width: 54ch;
}

.gp-page .gp-hero__image {
  grid-column: 2;
  grid-row: 1;
  padding: 0;
}

.gp-page .gp-hero__image .aspect-4x3 {
  height: 100%;
  aspect-ratio: auto;
}

.gp-page .gp-hero__image img {
  object-position: center right;
}

.gp-page .gp-hero__status {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  min-height: 12rem;
  align-items: stretch;
}

.gp-page .gp-hero__status-flow {
  width: 100%;
  justify-content: space-between;
}

.gp-page .gp-hero__status p {
  max-width: 34ch;
}

.gp-page .gp-status-strip {
  display: block;
  width: 100%;
  padding: var(--space-2) var(--space-3);
  background: var(--color-signal-yellow);
  font-family: var(--font-body);
  font-size: var(--text-label);
  font-weight: var(--weight-semibold);
  letter-spacing: 0.08em;
  line-height: var(--line-label);
}

.gp-page .gp-text-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-label);
  font-weight: var(--weight-semibold);
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.gp-page .gp-text-link:hover {
  text-decoration: underline;
}

.gp-page .gp-scenarios {
  grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 5fr);
  align-items: stretch;
}

.gp-page .gp-scenarios > .cell,
.gp-page .gp-agreements > .cell,
.gp-page .gp-comfort > .cell,
.gp-page .gp-rhythm > .cell {
  display: flex;
}

.gp-page .gp-scenarios__one { grid-column: 1; }
.gp-page .gp-scenarios__two { grid-column: 2; }
.gp-page .gp-scenarios__three { grid-column: 3; }

.gp-page .gp-card-flow {
  width: 100%;
  justify-content: flex-start;
}

.gp-page .gp-card-flow .gp-text-link,
.gp-page .gp-card-flow .button {
  margin-top: auto;
}

.gp-page .gp-scenarios .gp-card-flow {
  max-width: 34ch;
}

.gp-page .gp-index,
.gp-page .gp-step-number {
  display: inline-flex;
  width: 2.5rem;
  min-height: 2.5rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-ink);
  font-family: var(--font-heading);
  font-size: 1.125rem;
  font-weight: var(--weight-semibold);
  line-height: 1;
}

.gp-page .gp-index--yellow,
.gp-page .gp-step-number--yellow {
  background: var(--color-signal-yellow);
}

.gp-page .gp-card-foot,
.gp-page .gp-final__address {
  font-size: var(--text-label);
  font-weight: var(--weight-medium);
  letter-spacing: 0.08em;
  line-height: var(--line-label);
  text-transform: uppercase;
}

.gp-page .gp-plan {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: stretch;
}

.gp-page .gp-plan__restaurant { grid-column: 1; grid-row: 1; }
.gp-page .gp-plan__poker { grid-column: 1; grid-row: 2; }
.gp-page .gp-plan__image { grid-column: 2; grid-row: 1; padding: 0; }
.gp-page .gp-plan__caption { grid-column: 2; grid-row: 2; }

.gp-page .gp-plan__restaurant,
.gp-page .gp-plan__poker,
.gp-page .gp-plan__caption {
  display: flex;
}

.gp-page .gp-copy-flow {
  max-width: 58ch;
}

.gp-page .gp-plan__poker .gp-copy-flow {
  max-width: 36ch;
}

.gp-page .gp-plan__caption {
  flex-direction: column;
  gap: var(--space-2);
}

.gp-page .gp-plan__caption p {
  max-width: 54ch;
}

.gp-page .gp-agreements-head {
  grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
  align-items: stretch;
}

.gp-page .gp-agreements-head__title { grid-column: 1; }
.gp-page .gp-agreements-head__index { grid-column: 2; }

.gp-page .gp-agreements-head__title,
.gp-page .gp-agreements-head__index {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.gp-page .gp-agreements-head__title .lead { max-width: 62ch; }
.gp-page .gp-agreements-head__index p { max-width: 29ch; }

.gp-page .gp-agreements {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
}

.gp-page .gp-agreements__one { grid-column: 1; }
.gp-page .gp-agreements__two { grid-column: 2; }
.gp-page .gp-agreements__three { grid-column: 3; }
.gp-page .gp-agreements__four { grid-column: 4; }
.gp-page .gp-agreements .gp-card-flow { max-width: 33ch; }

.gp-page .gp-rhythm {
  grid-template-columns: minmax(0, 3fr) minmax(0, 5fr) minmax(0, 4fr);
  align-items: stretch;
}

.gp-page .gp-rhythm__one { grid-column: 1; grid-row: 1; }
.gp-page .gp-rhythm__two { grid-column: 2; grid-row: 1; }
.gp-page .gp-rhythm__three { grid-column: 3; grid-row: 1; }
.gp-page .gp-rhythm__note { grid-column: 3; grid-row: 2; }
.gp-page .gp-rhythm .gp-card-flow { max-width: 38ch; }
.gp-page .gp-rhythm__note { display: flex; }
.gp-page .gp-rhythm__note p { max-width: 28ch; }

.gp-page .gp-comfort-head {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: stretch;
}

.gp-page .gp-comfort-head__title { grid-column: 1; }
.gp-page .gp-comfort-head__lead { grid-column: 2; }

.gp-page .gp-comfort-head__title,
.gp-page .gp-comfort-head__lead {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.gp-page .gp-comfort-head__lead .lead { max-width: 52ch; }

.gp-page .gp-comfort {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.gp-page .gp-comfort__one { grid-column: 1; }
.gp-page .gp-comfort__two { grid-column: 2; }
.gp-page .gp-comfort__three { grid-column: 3; }
.gp-page .gp-comfort .gp-card-flow { max-width: 34ch; }

.gp-page .gp-faq-head {
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  align-items: stretch;
}

.gp-page .gp-faq-head__title { grid-column: 1; }
.gp-page .gp-faq-head__intro { grid-column: 2; }

.gp-page .gp-faq-head__title,
.gp-page .gp-faq-head__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.gp-page .gp-faq-head__intro .lead { max-width: 60ch; }

.gp-page .gp-faq {
  border: 1px solid var(--color-ink);
  border-top: 0;
  background: var(--color-surface);
}

.gp-page .gp-faq__item + .gp-faq__item {
  border-top: 1px solid var(--color-ink);
}

.gp-page .gp-faq__button {
  display: grid;
  width: 100%;
  min-width: 0;
  min-height: 3.5rem;
  grid-template-columns: minmax(0, 1fr) 2rem;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  color: var(--color-ink);
  font-family: var(--font-heading);
  font-size: 1.125rem;
  font-weight: var(--weight-semibold);
  letter-spacing: -0.02em;
  text-align: left;
}

.gp-page .gp-faq__symbol {
  justify-self: end;
  font-size: 1.5rem;
  line-height: 1;
}

.gp-page .gp-faq__item:has(.gp-faq__button[aria-expanded="true"]) .gp-faq__button {
  background: var(--color-signal-yellow);
}

.gp-page .gp-faq__panel {
  padding: 0 var(--space-5) var(--space-5);
  background: var(--color-surface);
}

.gp-page .gp-faq__panel p {
  max-width: 60ch;
  margin: 0;
}

.gp-page .gp-checklist {
  grid-template-columns: minmax(0, 9fr) minmax(13.75rem, 3fr);
  align-items: stretch;
}

.gp-page .gp-checklist__list { grid-column: 1; }
.gp-page .gp-checklist__note { grid-column: 2; display: flex; background: var(--color-signal-yellow); }

.gp-page .gp-checklist__list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.gp-page .gp-checklist__items {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  border-top: 1px solid var(--color-ink);
}

.gp-page .gp-checklist__item {
  display: grid;
  min-width: 0;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: var(--space-4);
  padding: var(--space-4) 0;
}

.gp-page .gp-checklist__item + .gp-checklist__item {
  border-top: 1px solid var(--color-ink);
}

.gp-page .gp-checklist__item > span {
  display: inline-flex;
  width: 2rem;
  height: 2rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-ink);
  font-size: var(--text-label);
  font-weight: var(--weight-semibold);
}

.gp-page .gp-checklist__item .gp-checklist__accent { background: var(--color-signal-yellow); }
.gp-page .gp-checklist__item h3 { margin-bottom: var(--space-2); }
.gp-page .gp-checklist__item p { max-width: 54ch; }
.gp-page .gp-checklist__note .gp-note-flow { justify-content: flex-end; }
.gp-page .gp-checklist__note p { max-width: 28ch; }

.gp-page .gp-contact-head {
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  align-items: stretch;
}

.gp-page .gp-contact-head__title { grid-column: 1; }
.gp-page .gp-contact-head__intro { grid-column: 2; }

.gp-page .gp-contact-head__title,
.gp-page .gp-contact-head__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.gp-page .gp-contact-head__intro p { max-width: 55ch; }

.gp-page .gp-contact-layout {
  grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
  align-items: stretch;
}

.gp-page .gp-contact-form { grid-column: 1; }
.gp-page .gp-contact-alternative { grid-column: 2; display: flex; }
.gp-page .gp-contact-alternative .gp-card-flow { max-width: 30ch; }

.gp-page .gp-form-grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--space-4);
}

.gp-page .gp-form-grid > * { min-width: 0; }
.gp-page .gp-form-grid__full { grid-column: 1 / -1; }
.gp-page .gp-contact-form form { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); }
.gp-page .gp-contact-form .form-field { margin: 0; }
.gp-page .gp-contact-form textarea { min-height: 8.75rem; }
.gp-page .gp-contact-form .button { align-self: flex-start; }
.gp-page .gp-contact-form .form-help { margin: 0; max-width: 52ch; }
.gp-page .gp-contact-form .form-error:empty { display: none; }
.gp-page .gp-contact-form .form-error { margin-top: var(--space-2); }
.gp-page .gp-form-live { min-height: 1.4em; font-size: var(--text-meta); font-weight: var(--weight-medium); }
.gp-page .gp-form-success { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.gp-page .gp-contact-link { display: block; font-weight: var(--weight-semibold); overflow-wrap: anywhere; }

.gp-page .gp-final__cell { min-height: 22rem; display: flex; align-items: center; }
.gp-page .gp-final__content { width: min(100%, 58ch); }
.gp-page .gp-final__content h2 { max-width: 20ch; }
.gp-page .gp-final__content > p:not(.gp-final__address) { max-width: 58ch; }
.gp-page .gp-final__actions { display: flex; min-width: 0; flex-wrap: wrap; gap: var(--space-3); }
.gp-page .gp-final__actions > * { min-width: 0; }

.gp-page input:focus,
.gp-page select:focus,
.gp-page textarea:focus { outline: 2px solid var(--color-focus); outline-offset: 2px; }

@media (max-width: 1080px) {
  .gp-page .gp-agreements { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gp-page .gp-agreements__one { grid-column: 1; grid-row: 1; }
  .gp-page .gp-agreements__two { grid-column: 2; grid-row: 1; }
  .gp-page .gp-agreements__three { grid-column: 1; grid-row: 2; }
  .gp-page .gp-agreements__four { grid-column: 2; grid-row: 2; }
}

@media (max-width: 1060px) {
  .gp-page .gp-plan { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  .gp-page .gp-plan__image { grid-column: 1 / -1; grid-row: 1; }
  .gp-page .gp-plan__caption { grid-column: 1 / -1; grid-row: 2; }
  .gp-page .gp-plan__restaurant { grid-column: 1; grid-row: 3; }
  .gp-page .gp-plan__poker { grid-column: 2; grid-row: 3; }
}

@media (max-width: 1040px) {
  .gp-page .gp-hero__grid { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
}

@media (max-width: 1000px) {
  .gp-page .gp-rhythm { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
  .gp-page .gp-rhythm__one { grid-column: 1 / -1; grid-row: 1; }
  .gp-page .gp-rhythm__two { grid-column: 1 / -1; grid-row: 2; }
  .gp-page .gp-rhythm__three { grid-column: 1 / -1; grid-row: 3; }
  .gp-page .gp-rhythm__note { grid-column: 2; grid-row: 4; }
}

@media (max-width: 980px) {
  .gp-page .gp-scenarios { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gp-page .gp-scenarios__one { grid-column: 1; grid-row: 1; }
  .gp-page .gp-scenarios__two { grid-column: 2; grid-row: 1; }
  .gp-page .gp-scenarios__three { grid-column: 1 / -1; grid-row: 2; }
}

@media (max-width: 960px) {
  .gp-page .gp-contact-layout { grid-template-columns: minmax(0, 1fr); }
  .gp-page .gp-contact-form { grid-column: 1; grid-row: 1; }
  .gp-page .gp-contact-alternative { grid-column: 1; grid-row: 2; }
}

@media (max-width: 959px) {
  .gp-page .gp-comfort { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gp-page .gp-comfort__one { grid-column: 1; grid-row: 1; }
  .gp-page .gp-comfort__two { grid-column: 2; grid-row: 1; }
  .gp-page .gp-comfort__three { grid-column: 1 / -1; grid-row: 2; }
  .gp-page .gp-checklist { grid-template-columns: minmax(0, 1fr); }
  .gp-page .gp-checklist__list { grid-column: 1; grid-row: 1; }
  .gp-page .gp-checklist__note { grid-column: 1; grid-row: 2; min-height: 13rem; }
}

@media (max-width: 899px) {
  .gp-page { padding-block: var(--space-6); }
  .gp-page .gp-container { width: 100%; padding-inline: var(--container-gutter); }
  .gp-page .gp-section + .gp-section { margin-top: var(--space-7); }
  .gp-page .gp-agreements-head,
  .gp-page .gp-comfort-head,
  .gp-page .gp-faq-head,
  .gp-page .gp-contact-head { grid-template-columns: minmax(0, 1fr); }
  .gp-page .gp-agreements-head__title,
  .gp-page .gp-comfort-head__title,
  .gp-page .gp-faq-head__title,
  .gp-page .gp-contact-head__title { grid-column: 1; grid-row: 1; }
  .gp-page .gp-agreements-head__index,
  .gp-page .gp-comfort-head__lead,
  .gp-page .gp-faq-head__intro,
  .gp-page .gp-contact-head__intro { grid-column: 1; grid-row: 2; }
}

@media (max-width: 720px) {
  .gp-page .gp-section + .gp-section { margin-top: var(--space-6); }
  .gp-page .gp-hero__grid,
  .gp-page .gp-plan,
  .gp-page .gp-scenarios,
  .gp-page .gp-agreements,
  .gp-page .gp-rhythm,
  .gp-page .gp-comfort { grid-template-columns: minmax(0, 1fr); }
  .gp-page .gp-hero__status { grid-column: 1; grid-row: 1; min-height: 0; }
  .gp-page .gp-hero__copy { grid-column: 1; grid-row: 2; min-height: 0; }
  .gp-page .gp-hero__image { grid-column: 1; grid-row: 3; }
  .gp-page .gp-hero__image .aspect-4x3 { height: auto; aspect-ratio: 4 / 3; }
  .gp-page .gp-hero__copy-flow .display-title { font-size: clamp(2.5rem, 12vw, 4.1rem); }
  .gp-page .gp-plan__poker { grid-column: 1; grid-row: 1; }
  .gp-page .gp-plan__image { grid-column: 1; grid-row: 2; }
  .gp-page .gp-plan__caption { grid-column: 1; grid-row: 3; }
  .gp-page .gp-plan__restaurant { grid-column: 1; grid-row: 4; }
  .gp-page .gp-scenarios__three { grid-column: 1; grid-row: 1; }
  .gp-page .gp-scenarios__one { grid-column: 1; grid-row: 2; }
  .gp-page .gp-scenarios__two { grid-column: 1; grid-row: 3; }
  .gp-page .gp-agreements__one { grid-column: 1; grid-row: 1; }
  .gp-page .gp-agreements__two { grid-column: 1; grid-row: 2; }
  .gp-page .gp-agreements__four { grid-column: 1; grid-row: 3; }
  .gp-page .gp-agreements__three { grid-column: 1; grid-row: 4; }
  .gp-page .gp-rhythm__one { grid-column: 1; grid-row: 1; }
  .gp-page .gp-rhythm__two { grid-column: 1; grid-row: 2; }
  .gp-page .gp-rhythm__three { grid-column: 1; grid-row: 3; }
  .gp-page .gp-rhythm__note { grid-column: 1; grid-row: 4; }
  .gp-page .gp-comfort__one { grid-column: 1; grid-row: 1; }
  .gp-page .gp-comfort__two { grid-column: 1; grid-row: 2; }
  .gp-page .gp-comfort__three { grid-column: 1; grid-row: 3; }
  .gp-page .gp-hero__copy-flow,
  .gp-page .gp-copy-flow,
  .gp-page .gp-card-flow,
  .gp-page .gp-contact-head__intro p,
  .gp-page .gp-contact-alternative .gp-card-flow { max-width: 44ch; }
}

@media (max-width: 640px) {
  .gp-page .gp-section-head { margin-bottom: var(--space-4); }
  .gp-page .gp-form-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .gp-page .gp-form-grid__full { grid-column: 1; }
  .gp-page .gp-contact-form .button { width: 100%; }
  .gp-page .gp-faq__button { padding: var(--space-3) var(--space-4); }
  .gp-page .gp-faq__panel { padding: 0 var(--space-4) var(--space-4); }
  .gp-page .gp-checklist__item { grid-template-columns: 2rem minmax(0, 1fr); gap: var(--space-3); }
  .gp-page .gp-final__cell { min-height: 0; }
  .gp-page .gp-final__actions { width: 100%; flex-direction: column; }
  .gp-page .gp-final__actions .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .gp-page * { transition: none; }
}
