.portfolio-page {
  overflow: hidden;
}

.portfolio-page a:focus-visible,
.portfolio-page button:focus-visible,
.portfolio-page input:focus-visible,
.portfolio-page select:focus-visible,
.portfolio-page textarea:focus-visible {
  outline: 2px solid var(--color-ruby);
  outline-offset: 3px;
}

.portfolio-hero__grid,
.portfolio-index__grid,
.portfolio-project__grid,
.portfolio-private__grid,
.portfolio-casino__grid,
.portfolio-awards__grid,
.portfolio-team__grid,
.portfolio-reassurance__grid,
.portfolio-consultation__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--space-6);
}

.portfolio-hero {
  padding-block: var(--space-8) var(--section-space);
}

.portfolio-hero__media {
  grid-column: 5 / 13;
  grid-row: 1;
  width: 100%;
  min-width: 0;
  margin: 0;
}

.portfolio-hero__media img {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center;
}

.portfolio-hero__panel {
  z-index: 1;
  grid-column: 1 / 6;
  grid-row: 1;
  align-self: end;
  width: calc(100% + var(--space-7));
  min-width: 0;
  margin-bottom: calc(var(--space-7) * -1);
  padding: clamp(var(--space-5), 4vw, var(--space-7));
  background: var(--color-white);
  box-shadow: var(--shadow-panel);
}

.portfolio-hero__panel h1 {
  max-width: 10ch;
}

.portfolio-hero__panel .lead {
  max-width: 34rem;
}

.portfolio-hero__actions {
  margin-top: var(--space-6);
}

.portfolio-index__intro {
  grid-column: 1 / 6;
  width: 100%;
  min-width: 0;
}

.portfolio-index__intro > p:last-child {
  max-width: 38.75rem;
}

.portfolio-index__list {
  display: grid;
  grid-column: 6 / 13;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6) var(--space-7);
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.portfolio-index__item {
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-rule-champagne);
}

.portfolio-index__item--wide {
  grid-column: 1 / 3;
}

.portfolio-index__number,
.portfolio-awards__notes span,
.portfolio-team__principles span,
.portfolio-process__list > li > span {
  color: var(--color-champagne);
  font-family: var(--font-heading);
  font-size: clamp(2.35rem, 4vw, 4.25rem);
  font-weight: 600;
  line-height: 0.8;
}

.portfolio-index__item h3 {
  margin-bottom: var(--space-3);
}

.portfolio-index__item h3 a {
  text-decoration: none;
}

.portfolio-index__item h3 a:hover {
  color: var(--color-ruby);
  text-decoration: underline;
  text-decoration-color: var(--color-champagne);
}

.portfolio-index__item p {
  max-width: 18.75rem;
  margin-bottom: 0;
  font-size: 0.9375rem;
}

.portfolio-index__item .status-badge {
  margin-bottom: var(--space-3);
}

.portfolio-project__content {
  grid-column: 1 / 6;
  grid-row: 1;
  width: 100%;
  min-width: 0;
}

.portfolio-project__content h2 {
  max-width: 10ch;
}

.portfolio-project__overview {
  max-width: 32.5rem;
}

.portfolio-project__media {
  position: relative;
  grid-column: 6 / 13;
  grid-row: 1;
  align-self: start;
  width: 100%;
  min-width: 0;
  margin: calc(var(--space-6) * -1) 0 0;
  padding: 0 0 var(--space-5) var(--space-5);
}

.portfolio-project__media::after {
  position: absolute;
  z-index: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: calc(100% - var(--space-5));
  background: var(--color-sand);
  content: "";
}

.portfolio-project__media img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
}

.portfolio-project__mobile-media,
.portfolio-private__mobile-media,
.portfolio-awards__mobile-media {
  display: none;
  margin: 0;
}

.portfolio-project__notes {
  display: grid;
  gap: var(--space-5);
  margin-block: var(--space-6);
}

.portfolio-project__notes article {
  width: 100%;
  min-width: 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-rule-champagne);
}

.portfolio-project__notes h3 {
  margin-bottom: var(--space-3);
}

.portfolio-project__notes p:last-child {
  max-width: 21.25rem;
  margin-bottom: 0;
}

.portfolio-private__content {
  grid-column: 1 / 8;
  width: 100%;
  min-width: 0;
  padding: clamp(var(--space-6), 4vw, var(--space-8));
  background: var(--color-blush);
}

.portfolio-private__content h2 {
  max-width: 11ch;
}

.portfolio-private__content > .lead {
  max-width: 31.25rem;
}

.portfolio-private__media {
  z-index: 1;
  grid-column: 8 / 13;
  align-self: center;
  width: calc(100% + var(--space-5));
  min-width: 0;
  margin: 0 0 0 calc(var(--space-5) * -1);
  padding: var(--space-5) 0 0 var(--space-5);
  background: var(--color-sand);
}

.portfolio-private__media img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.portfolio-private__notes {
  display: grid;
  gap: var(--space-5);
  margin-block: var(--space-6);
}

.portfolio-private__notes article {
  width: 100%;
  min-width: 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-rule-champagne);
}

.portfolio-private__notes h3 {
  margin-bottom: var(--space-3);
}

.portfolio-private__notes p {
  max-width: 26.25rem;
  margin-bottom: 0;
}

.portfolio-casino__grid {
  row-gap: var(--space-7);
}

.portfolio-casino__lead {
  grid-column: 1 / 7;
  width: 100%;
  min-width: 0;
}

.portfolio-casino .eyebrow {
  color: var(--color-champagne);
}

.portfolio-casino__lead h2 {
  max-width: 11ch;
}

.portfolio-casino__lead .lead {
  max-width: 32.5rem;
}

.portfolio-casino__lead .button {
  margin-top: var(--space-2);
}

.portfolio-casino__details {
  display: grid;
  grid-column: 8 / 13;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  align-self: center;
  width: 100%;
  min-width: 0;
}

.portfolio-casino__details article {
  min-width: 0;
}

.portfolio-casino__details article + article {
  padding-left: var(--space-5);
  border-left: 1px solid var(--color-rule-champagne);
}

.portfolio-casino__details .meta {
  color: var(--color-champagne);
}

.portfolio-casino__details h3 {
  margin-bottom: var(--space-3);
}

.portfolio-casino__details p:last-child {
  max-width: 19rem;
  margin-bottom: 0;
}

.portfolio-casino__notice {
  grid-column: 1 / 8;
  width: 100%;
  max-width: 40.625rem;
  min-width: 0;
  padding: var(--space-5);
  border-top: 1px solid var(--color-rule-champagne);
  background: var(--color-ivory);
  color: var(--color-plum);
}

.portfolio-casino__notice p {
  margin: 0;
  font-size: var(--text-utility);
  font-weight: 600;
  line-height: 1.55;
}

.portfolio-awards__intro {
  grid-column: 1 / 6;
  width: 100%;
  min-width: 0;
}

.portfolio-awards__intro h2 {
  max-width: 10ch;
}

.portfolio-awards__intro > p:last-child {
  max-width: 31.25rem;
}

.portfolio-awards__media {
  grid-column: 6 / 13;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-rule-champagne);
}

.portfolio-awards__media img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.portfolio-awards__notes {
  display: grid;
  grid-column: 1 / 13;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  width: 100%;
  min-width: 0;
  margin-top: var(--space-7);
}

.portfolio-awards__notes article {
  min-width: 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-rule-champagne);
}

.portfolio-awards__notes span,
.portfolio-team__principles span {
  display: block;
  margin-bottom: var(--space-3);
  font-size: 2.5rem;
}

.portfolio-awards__notes h3,
.portfolio-team__principles h3 {
  margin-bottom: var(--space-3);
}

.portfolio-awards__notes p,
.portfolio-team__principles p {
  max-width: 20rem;
  margin-bottom: 0;
}

.portfolio-awards__link {
  grid-column: 1 / 5;
  width: max-content;
  margin-top: var(--space-6);
}

.portfolio-team__grid {
  row-gap: var(--space-7);
}

.portfolio-team__intro {
  grid-column: 1 / 6;
  width: 100%;
  min-width: 0;
}

.portfolio-team__intro h2 {
  max-width: 10ch;
}

.portfolio-team__intro .lead {
  max-width: 32.5rem;
}

.portfolio-team__callout {
  grid-column: 7 / 10;
  align-self: end;
  width: 100%;
  min-width: 16.25rem;
  padding-left: var(--space-5);
  border-left: 1px solid var(--color-rule-champagne);
}

.portfolio-team__callout p:not(.meta) {
  margin-bottom: var(--space-4);
  font-size: var(--text-utility);
}

.portfolio-team__principles {
  display: grid;
  grid-column: 1 / 13;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  width: 100%;
  min-width: 0;
}

.portfolio-team__principles article {
  min-width: 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-rule-champagne);
}

.portfolio-process__intro {
  width: 50%;
  min-width: 0;
}

.portfolio-process__intro h2 {
  max-width: 12ch;
}

.portfolio-process__intro .lead {
  max-width: 37.5rem;
}

.portfolio-process__list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  min-width: 0;
  margin: var(--space-7) 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--color-rule-champagne);
  border-bottom: 1px solid var(--color-rule-champagne);
}

.portfolio-process__list > li {
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
  min-width: 0;
  padding: var(--space-5);
}

.portfolio-process__list > li + li {
  border-left: 1px solid var(--color-rule-champagne);
}

.portfolio-process__list > li > span {
  display: block;
  margin-bottom: var(--space-4);
  font-size: 3rem;
}

.portfolio-process__list h3 {
  margin-bottom: var(--space-3);
}

.portfolio-process__list p {
  margin-bottom: 0;
  font-size: 0.9375rem;
}

.portfolio-process__link {
  display: inline-block;
  margin-top: var(--space-6);
}

.portfolio-reassurance__panel {
  grid-column: 1 / 9;
  width: 100%;
  max-width: 47.5rem;
  min-width: 0;
  padding: clamp(var(--space-6), 4vw, var(--space-8));
  border: 1px solid var(--color-border);
  border-left: var(--space-3) solid var(--color-blush);
  background: var(--color-white);
  box-shadow: var(--shadow-panel);
}

.portfolio-reassurance__panel h2 {
  max-width: 12ch;
}

.portfolio-reassurance__panel p {
  max-width: 35rem;
}

.portfolio-reassurance__panel hr {
  margin-block: var(--space-5);
}

.portfolio-reassurance__panel .button {
  margin-top: var(--space-2);
}

.portfolio-consultation__content {
  grid-column: 1 / 8;
  width: 100%;
  max-width: 42.5rem;
  min-width: 0;
}

.portfolio-consultation__content h2 {
  max-width: 12ch;
}

.portfolio-consultation__content > .lead {
  max-width: 32.5rem;
}

.portfolio-consultation__rule {
  grid-column: 10 / 11;
  width: 1px;
  min-width: 1px;
  min-height: 100%;
  background: var(--color-rule-champagne);
}

.portfolio-form {
  display: grid;
  gap: var(--space-5);
  width: 100%;
  min-width: 0;
  margin-top: var(--space-6);
  padding: clamp(var(--space-5), 3vw, var(--space-6));
  border: 1px solid var(--color-border);
  background: var(--color-white);
  box-shadow: var(--shadow-panel);
}

.portfolio-form__paired {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  width: 100%;
  min-width: 0;
}

.portfolio-form__optional {
  color: var(--color-mauve);
  font-size: var(--text-meta);
  font-weight: 600;
}

.portfolio-form__services {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
}

.portfolio-form__services legend {
  color: var(--color-ink);
  font-size: var(--text-utility);
  font-weight: 700;
}

.portfolio-form__services > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3) var(--space-4);
  width: 100%;
  min-width: 0;
}

.portfolio-form__services label {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: var(--space-2);
  font-size: var(--text-utility);
  line-height: 1.45;
}

.portfolio-form__services input {
  width: 1rem;
  min-width: 1rem;
  height: 1rem;
  margin: 0.28rem 0 0;
  accent-color: var(--color-ruby);
}

.portfolio-form .button {
  justify-self: start;
}

.portfolio-form .form-note,
.portfolio-form .form-message {
  max-width: 32.5rem;
}

@media (max-width: 1099px) {
  .portfolio-hero__grid,
  .portfolio-index__grid,
  .portfolio-project__grid,
  .portfolio-private__grid,
  .portfolio-casino__grid,
  .portfolio-awards__grid,
  .portfolio-team__grid,
  .portfolio-reassurance__grid,
  .portfolio-consultation__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }

  .portfolio-hero__media { grid-column: 4 / 9; }
  .portfolio-hero__panel { grid-column: 1 / 5; width: calc(100% + var(--space-5)); margin-bottom: calc(var(--space-5) * -1); }
  .portfolio-index__intro { grid-column: 1 / 9; max-width: 38.75rem; margin-bottom: var(--space-6); }
  .portfolio-index__list { grid-column: 1 / 9; }
  .portfolio-project__content { grid-column: 1 / 5; }
  .portfolio-project__media { grid-column: 5 / 9; margin-top: 0; }
  .portfolio-private__content { grid-column: 1 / 6; }
  .portfolio-private__media { grid-column: 6 / 9; }
  .portfolio-casino__lead { grid-column: 1 / 6; }
  .portfolio-casino__details { grid-column: 6 / 9; grid-template-columns: 1fr; }
  .portfolio-casino__details article + article { padding-top: var(--space-5); padding-left: 0; border-top: 1px solid var(--color-rule-champagne); border-left: 0; }
  .portfolio-casino__notice { grid-column: 1 / 6; }
  .portfolio-awards__intro { grid-column: 1 / 4; }
  .portfolio-awards__media { grid-column: 4 / 9; }
  .portfolio-awards__notes { grid-column: 1 / 9; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-awards__notes article:last-child { grid-column: 1 / 3; }
  .portfolio-awards__link { grid-column: 1 / 4; }
  .portfolio-team__intro { grid-column: 1 / 6; }
  .portfolio-team__callout { grid-column: 6 / 9; }
  .portfolio-team__principles { grid-column: 1 / 9; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-team__principles article:last-child { grid-column: 1 / 3; }
  .portfolio-process__intro { width: 62.5%; }
  .portfolio-process__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .portfolio-process__list > li:nth-child(5) { grid-column: 1 / 5; border-top: 1px solid var(--color-rule-champagne); border-left: 0; }
  .portfolio-reassurance__panel { grid-column: 1 / 9; }
  .portfolio-consultation__content { grid-column: 1 / 9; }
  .portfolio-consultation__rule { display: none; }
}

@media (max-width: 899px) {
  .portfolio-project__grid { grid-template-columns: 1fr; row-gap: var(--space-6); }
  .portfolio-project__content { grid-column: 1; grid-row: auto; }
  .portfolio-project__media { display: none; }
  .portfolio-project__mobile-media { display: block; width: 100%; margin: var(--space-5) 0; }
  .portfolio-project__mobile-media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
  .portfolio-private__grid { grid-template-columns: 1fr; row-gap: var(--space-6); }
  .portfolio-private__content { grid-column: 1; }
  .portfolio-private__media { display: none; }
  .portfolio-private__mobile-media { display: block; width: 100%; margin: var(--space-5) 0; }
  .portfolio-private__mobile-media img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
}

@media (max-width: 760px) {
  .portfolio-form__paired,
  .portfolio-form__services > div { grid-template-columns: 1fr; }
}

@media (max-width: 699px) {
  .portfolio-hero__grid,
  .portfolio-index__grid,
  .portfolio-project__grid,
  .portfolio-private__grid,
  .portfolio-casino__grid,
  .portfolio-awards__grid,
  .portfolio-team__grid,
  .portfolio-reassurance__grid,
  .portfolio-consultation__grid { grid-template-columns: 1fr; row-gap: var(--space-5); }

  .portfolio-hero { padding-block: var(--space-6) var(--section-space); }
  .portfolio-hero__media { grid-column: 1; grid-row: 1; }
  .portfolio-hero__media img { aspect-ratio: 16 / 11; }
  .portfolio-hero__panel { grid-column: 1; grid-row: 2; width: 100%; margin: 0; padding: var(--space-5); border-top: 1px solid var(--color-rule-champagne); box-shadow: none; }
  .portfolio-hero__panel h1 { font-size: clamp(2.625rem, 12vw, 3.5rem); }
  .portfolio-index__intro,
  .portfolio-index__list,
  .portfolio-project__content,
  .portfolio-private__content,
  .portfolio-casino__lead,
  .portfolio-casino__details,
  .portfolio-casino__notice,
  .portfolio-awards__intro,
  .portfolio-awards__media,
  .portfolio-awards__notes,
  .portfolio-awards__link,
  .portfolio-team__intro,
  .portfolio-team__callout,
  .portfolio-team__principles,
  .portfolio-reassurance__panel,
  .portfolio-consultation__content { grid-column: 1; }

  .portfolio-index__intro { margin-bottom: var(--space-4); }
  .portfolio-index__list { grid-template-columns: 1fr; gap: var(--space-5); }
  .portfolio-index__item--wide { grid-column: 1; }
  .portfolio-index__item { grid-template-columns: 1fr; gap: var(--space-2); }
  .portfolio-index__item p { max-width: none; }
  .portfolio-project__content h2,
  .portfolio-private__content h2,
  .portfolio-casino__lead h2,
  .portfolio-awards__intro h2,
  .portfolio-team__intro h2,
  .portfolio-process__intro h2,
  .portfolio-reassurance__panel h2,
  .portfolio-consultation__content h2 { font-size: clamp(2.375rem, 11vw, 2.75rem); }
  .portfolio-project__notes { gap: var(--space-4); }
  .portfolio-project__notes article { padding-left: var(--space-5); border-top: 0; border-left: 2px solid var(--color-champagne); }
  .portfolio-private__content { padding: var(--space-5); }
  .portfolio-private__notes { gap: var(--space-4); }
  .portfolio-casino { padding-inline: 0; }
  .portfolio-casino__grid { row-gap: var(--space-6); }
  .portfolio-casino__details { grid-template-columns: 1fr; gap: var(--space-5); }
  .portfolio-casino__details article + article { padding-top: var(--space-5); }
  .portfolio-casino__notice { max-width: none; }
  .portfolio-awards__media { display: none; }
  .portfolio-awards__mobile-media { display: block; width: 100%; margin: var(--space-5) 0; }
  .portfolio-awards__mobile-media img { width: 100%; aspect-ratio: 16 / 11; object-fit: cover; }
  .portfolio-awards__notes,
  .portfolio-team__principles { grid-template-columns: 1fr; gap: var(--space-5); margin-top: var(--space-5); }
  .portfolio-awards__notes article:last-child,
  .portfolio-team__principles article:last-child { grid-column: 1; }
  .portfolio-awards__link { width: max-content; margin-top: var(--space-4); }
  .portfolio-team__callout { min-width: 0; padding: var(--space-5); border-left: 0; border-top: 1px solid var(--color-rule-champagne); background: rgba(255, 255, 255, 0.28); }
  .portfolio-process__intro { width: 100%; }
  .portfolio-process__list { grid-template-columns: 1fr; gap: var(--space-5); margin-top: var(--space-6); border-bottom: 0; }
  .portfolio-process__list > li,
  .portfolio-process__list > li:nth-child(5) { display: grid; grid-column: 1; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--space-3); padding: var(--space-5) 0 0 var(--space-5); border-top: 0; border-left: 2px solid var(--color-champagne); }
  .portfolio-process__list > li + li { border-left: 2px solid var(--color-champagne); }
  .portfolio-process__list > li > span { margin: 0; font-size: 2.5rem; }
  .portfolio-reassurance__panel { max-width: none; padding: var(--space-5); }
  .portfolio-form { padding: var(--space-5); }
  .portfolio-form .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .portfolio-page * { transition-duration: 0.01ms !important; }
}
