:root {
  --studio-black: #080808;
  --studio-paper: #f3f3ef;
  --studio-white: #ffffff;
  --studio-gray: #d9d9d3;
  --studio-ink-soft: #646860;
  --studio-olive: #929a73;
  --studio-line: rgba(8, 8, 8, 0.2);
  --studio-display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --studio-body: "Archivo", "Inter", system-ui, sans-serif;
}

body.gm-interior,
body.gm-personalized,
body.gm-partners {
  background: var(--studio-paper);
  color: var(--studio-black);
  font-family: var(--studio-body);
  overflow-x: hidden;
}

.gm-interior main,
.gm-personalized main,
.gm-partners main {
  font-family: var(--studio-body);
}

.gm-interior h1,
.gm-interior h2,
.gm-interior h3,
.gm-personalized h1,
.gm-personalized h2,
.gm-personalized h3,
.gm-partners h1,
.gm-partners h2,
.gm-partners h3 {
  font-family: var(--studio-display);
  font-weight: 800;
  letter-spacing: 0;
}

.gm-interior .gm-section-label,
.gm-interior .eyebrow {
  color: #73795c;
  font-family: var(--studio-body);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.gm-interior .gm-button,
.gm-interior .button {
  align-items: center;
  border: 1px solid currentColor;
  border-radius: 0;
  display: inline-flex;
  font-family: var(--studio-body);
  font-size: 0.68rem;
  font-weight: 800;
  justify-content: center;
  letter-spacing: 0.12em;
  min-height: 48px;
  padding: 0 22px;
  text-transform: uppercase;
}

.gm-interior .gm-button-solid,
.gm-interior .button-primary {
  background: var(--studio-black);
  border-color: var(--studio-black);
  color: #fff;
}

.gm-interior .gm-button-link,
.gm-interior .button-secondary {
  background: transparent;
  border-color: var(--studio-black);
  color: var(--studio-black);
}

.gm-interior .interior-hero {
  align-items: stretch;
  background: var(--studio-black);
  color: #fff;
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(440px, 1.12fr);
  min-height: 620px;
}

.gm-interior .interior-hero-copy {
  align-self: center;
  padding: 80px 10%;
}

.gm-interior .interior-hero h1 {
  font-size: clamp(4.8rem, 7.5vw, 8rem);
  line-height: 0.82;
  margin: 30px 0;
  max-width: 720px;
  text-transform: uppercase;
}

.gm-interior .interior-hero h1 strong {
  color: var(--studio-olive);
  display: block;
}

.gm-interior .interior-hero-copy > p:not(.gm-section-label) {
  color: rgba(255, 255, 255, 0.7);
  font-size: 1rem;
  line-height: 1.65;
  max-width: 520px;
}

.gm-interior .interior-hero .gm-actions {
  margin-top: 36px;
}

.gm-interior .interior-hero .gm-button-solid {
  background: #fff;
  border-color: #fff;
  color: var(--studio-black);
}

.gm-interior .interior-hero .gm-button-link {
  border-color: rgba(255, 255, 255, 0.58);
  color: #fff;
}

.gm-interior .interior-hero-media {
  min-height: 560px;
  overflow: hidden;
  position: relative;
}

.gm-interior .interior-hero-media img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.gm-interior .interior-hero-media figcaption {
  background: rgba(0, 0, 0, 0.82);
  bottom: 0;
  color: #fff;
  display: flex;
  font-size: 0.62rem;
  font-weight: 800;
  justify-content: space-between;
  left: 0;
  letter-spacing: 0.12em;
  padding: 20px 24px;
  position: absolute;
  right: 0;
  text-transform: uppercase;
}

.gm-interior .interior-strip {
  background: var(--studio-olive);
  color: #090909;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gm-interior .interior-strip span {
  align-items: center;
  border-right: 1px solid rgba(0, 0, 0, 0.22);
  display: flex;
  font-size: 0.72rem;
  font-weight: 800;
  justify-content: center;
  letter-spacing: 0.09em;
  min-height: 66px;
  padding: 15px;
  text-align: center;
  text-transform: uppercase;
}

.gm-interior .interior-section {
  padding: 96px 6.5%;
}

.gm-interior .interior-section-head {
  align-items: end;
  display: grid;
  gap: 10%;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
  margin-bottom: 54px;
}

.gm-interior .interior-section-head h2 {
  font-size: clamp(4rem, 6.5vw, 7rem);
  line-height: 0.84;
  margin: 24px 0 0;
  text-transform: uppercase;
}

.gm-interior .interior-section-head > p {
  border-top: 4px solid var(--studio-black);
  color: var(--studio-ink-soft);
  line-height: 1.65;
  margin: 0;
  padding-top: 20px;
}

.gm-interior .business-projects {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gm-interior .business-projects article {
  background: #fff;
  display: grid;
  grid-template-rows: 280px auto;
  min-width: 0;
}

.gm-interior .business-projects img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.gm-interior .business-project-copy {
  border-top: 1px solid var(--studio-line);
  padding: 30px;
}

.gm-interior .business-project-copy small {
  color: #73795c;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.gm-interior .business-project-copy h3 {
  font-size: 2.25rem;
  line-height: 0.95;
  margin: 18px 0 14px;
  text-transform: uppercase;
}

.gm-interior .business-project-copy p {
  color: var(--studio-ink-soft);
  font-size: 0.82rem;
  line-height: 1.65;
}

.gm-interior .interior-band {
  align-items: center;
  background: var(--studio-black);
  color: #fff;
  display: grid;
  gap: 12%;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.55fr);
  padding: 88px 6.5%;
}

.gm-interior .interior-band h2 {
  font-size: clamp(4rem, 6vw, 6.5rem);
  line-height: 0.84;
  margin: 0;
  text-transform: uppercase;
}

.gm-interior .interior-band h2 strong {
  color: var(--studio-olive);
}

.gm-interior .interior-band p {
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.65;
}

.gm-interior .interior-band .gm-button {
  border-color: #fff;
  color: #fff;
  margin-top: 20px;
}

/* Quote intake */
.gm-interior .intake-shell {
  margin: 0;
  max-width: none;
  padding: 0;
  width: 100%;
}

.gm-interior .intake-hero {
  background: var(--studio-black);
  border-radius: 0;
  color: #fff;
  margin: 0;
  max-width: none;
  padding: 96px 6.5% 150px;
  width: 100%;
}

.gm-interior .intake-hero h1 {
  font-size: clamp(4.7rem, 8vw, 8.5rem);
  line-height: 0.82;
  margin: 26px 0;
  max-width: 1100px;
  text-transform: uppercase;
}

.gm-interior .intake-hero > p:last-child {
  color: rgba(255, 255, 255, 0.68);
  line-height: 1.65;
  max-width: 700px;
}

.gm-interior .intake-layout {
  align-items: start;
  display: grid;
  gap: 32px;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  margin-top: -86px;
  padding: 0 6.5% 100px;
}

.gm-interior .retail-form,
.gm-interior .intake-page .retail-form {
  background: #fff;
  border: 1px solid var(--studio-line);
  border-radius: 0;
  box-shadow: none;
  display: grid;
  gap: 20px;
  padding: 34px;
}

.gm-interior .retail-form label,
.gm-interior .retail-form fieldset {
  color: var(--studio-black);
  font-family: var(--studio-body);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gm-interior .retail-form input,
.gm-interior .retail-form select,
.gm-interior .retail-form textarea {
  background: #f3f3ef;
  border: 1px solid rgba(0, 0, 0, 0.22);
  border-radius: 0;
  color: var(--studio-black);
  font-family: var(--studio-body);
  margin-top: 9px;
}

.gm-interior .retail-form input:focus,
.gm-interior .retail-form select:focus,
.gm-interior .retail-form textarea:focus {
  border-color: var(--studio-olive);
  box-shadow: 0 0 0 2px rgba(146, 154, 115, 0.24);
  outline: none;
}

.gm-interior .segmented label {
  background: #f3f3ef;
  border-radius: 0;
  color: var(--studio-black);
}

.gm-interior .segmented input:checked + label {
  background: var(--studio-black);
  color: #fff;
}

.gm-interior .estimate {
  background: var(--studio-olive);
  border: 0;
  color: var(--studio-black);
}

.gm-interior .retail-form .button-primary {
  width: 100%;
}

.gm-interior .intake-side {
  display: grid;
  gap: 1px;
}

.gm-interior .intake-side .info-card {
  background: var(--studio-black);
  border: 0;
  border-radius: 0;
  color: #fff;
  min-height: 170px;
  padding: 28px;
}

.gm-interior .intake-side .info-card strong {
  font-family: var(--studio-display);
  font-size: 2rem;
  text-transform: uppercase;
}

.gm-interior .intake-side .info-card span {
  color: rgba(255, 255, 255, 0.62);
  line-height: 1.6;
}

/* Contact */
.gm-interior .contact-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gm-interior .contact-grid article {
  background: #fff;
  min-height: 280px;
  padding: 34px;
}

.gm-interior .contact-grid h3 {
  font-size: 2.5rem;
  line-height: 0.95;
  margin: 26px 0 18px;
  text-transform: uppercase;
}

.gm-interior .contact-grid p {
  color: var(--studio-ink-soft);
  font-size: 0.85rem;
  line-height: 1.65;
}

.gm-interior .contact-grid a {
  border-bottom: 1px solid currentColor;
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  margin-top: 20px;
  padding-bottom: 6px;
  text-transform: uppercase;
}

/* Existing personalized and partner experiences */
.gm-personalized .photo-hero h1,
.gm-partners .partner-hero h1 {
  font-family: var(--studio-display);
  font-weight: 800;
  letter-spacing: 0;
  line-height: 0.84;
  text-transform: uppercase;
}

.gm-personalized .photo-section-heading h2,
.gm-personalized .photo-materials h2,
.gm-personalized .photo-process h2,
.gm-personalized .photo-intake h2,
.gm-partners .partner-section-heading h2,
.gm-partners .partner-relief h2,
.gm-partners .partner-qr h2,
.gm-partners .partner-pilot h2 {
  font-family: var(--studio-display);
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.gm-personalized .photo-package-card,
.gm-personalized .photo-form,
.gm-partners .partner-demo-controls,
.gm-partners .partner-demo-stage {
  border-radius: 0;
}

@media (max-width: 800px) {
  .gm-interior .interior-hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .gm-interior .interior-hero-copy {
    padding: 64px 20px 54px;
  }

  .gm-interior .interior-hero h1 {
    font-size: clamp(4rem, 20vw, 6rem);
  }

  .gm-interior .interior-hero-media {
    min-height: 340px;
  }

  .gm-interior .interior-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gm-interior .interior-strip span {
    border-bottom: 1px solid rgba(0, 0, 0, 0.22);
    min-height: 58px;
  }

  .gm-interior .interior-section {
    padding: 70px 20px;
  }

  .gm-interior .interior-section-head,
  .gm-interior .interior-band,
  .gm-interior .intake-layout {
    grid-template-columns: 1fr;
  }

  .gm-interior .interior-section-head {
    gap: 34px;
  }

  .gm-interior .interior-section-head h2,
  .gm-interior .interior-band h2 {
    font-size: clamp(3.8rem, 18vw, 5.2rem);
  }

  .gm-interior .business-projects,
  .gm-interior .contact-grid {
    grid-template-columns: 1fr;
  }

  .gm-interior .business-projects article {
    grid-template-rows: 250px auto;
  }

  .gm-interior .interior-band {
    gap: 36px;
    padding: 70px 20px;
  }

  .gm-interior .intake-hero {
    padding: 70px 20px 120px;
  }

  .gm-interior .intake-hero h1 {
    font-size: clamp(4rem, 19vw, 5.8rem);
  }

  .gm-interior .intake-layout {
    margin-top: -64px;
    padding: 0 20px 72px;
  }

  .gm-interior .retail-form,
  .gm-interior .intake-page .retail-form {
    padding: 24px 18px;
  }
}
