/* Home page template - hero promo full bleed */
.dgc-hero-promo-full-bleed,
.dgc-hero-promo-full-bleed-black-text {
  padding: 0;
}

.dgc-hero-promo-full-bleed-black-text
.devsite-landing-row-item-description-content {
  color: black;
}

.dgc-hero-promo-full-bleed .devsite-landing-row-inner,
.dgc-hero-promo-full-bleed-black-text .devsite-landing-row-inner{
  padding: 0 2.5rem;
}

.dgc-hero-promo-full-bleed-black-text a {
  color: black !important;
}

.dgc-hero-promo-full-bleed img,
.dgc-hero-promo-full-bleed-black-text img {
  border-radius: .6rem;
}

.dgc-hero-promo-full-bleed .dgc-hero-promo-full-bleed-button {
  background-color: transparent !important;
  border: 1px solid var(--tenant-inverted-text-color, white) !important;
  color: var(--tenant-inverted-text-color, white) !important;
}

.dgc-hero-promo-full-bleed-black-text .dgc-hero-promo-full-bleed-button {
  background-color: transparent !important;
  border: 1px solid var(--tenant-primary-text-color, black) !important;
  color: var(--tenant-primary-text-color, black) !important;
}

.dgc-hero-promo-full-bleed-button:hover,
.dgc-hero-promo-full-bleed-button:focus {
  background-color: rgb(0,0,0,.15) !important;
}

@media screen and (max-width: 870px) {
  .dgc-hero-promo-full-bleed,
  .dgc-hero-promo-full-bleed-black-text {
    padding: 24px 0;
  }
}

@media screen and (max-width: 600px) {
  .dgc-hero-promo-full-bleed,
  .dgc-hero-promo-full-bleed-black-text {
    padding: 1px 0 36px;
  }
}

/* Home page template - hero promo full bleed with animation */
.dgc-hero-promo-animated figure {
  background-image: url(/homepage-assets/images/build-anything-with-google.png) !important;
  background-size: contain !important;
  border-radius: .6rem;
}

.dgc-hero-promo-animated img {
  animation: heroPromo 4s;
}

@keyframes heroPromo {
  0%, 50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* Home page template - hero promo stories offset */
.dgc-hero-offset-inner > div:first-child {
  margin-inline-start: -10vw;
  min-width: 50vw;
  width: 880px;
}

/* [1] Ensure the row item description slightly overlaps its media. */
.dgc-hero-offset-inner > div:last-child {
  background-color: var(--tenant-background-1);
  border-radius: 8px;
  box-shadow: 0 0 30px -10px grey;
  padding: 32px;
  z-index: 1 /* [1] */;
}

.dgc-hero-offset > div {
  padding: 0 48px;
}

.dgc-hero-offset img {
  border-radius: 8px;
  height: 400px;
  object-fit: cover;
}

@media screen and (max-width: 1310px) {
  .dgc-hero-offset-inner > div:first-child {
    margin-inline-start: -14vw;
    width: 78vw;
  }

  .dgc-hero-offset-inner > div:last-child {
    width: 40vw;
  }

  .dgc-hero-offset-inner h3 a {
    display: inline-block;
    font-size: 24px;
    line-height: 28px;
  }
}

@media screen and (max-width: 840px) {
  .dgc-hero-offset > div {
    padding: 0;
  }

  /* [1] Forces hero to display in a column with flex centering rather than a
   * row at 840px width */
  .dgc-hero-offset-inner {
    display: flex !important; /* [1] */
  }

  /* [1] Forces image container width to full screen width when resized to 840px
   * rather than having small amounts of whitespace on each side. */
  .dgc-hero-offset-inner > div:first-child {
    margin-inline-start: 0;
    width: 100% !important /* [1] */;
  }

  .dgc-hero-offset img {
    border-radius: 0;
    height: 50vh;
  }

  /* [1] Pull the description up in order to to overlap the image. */
  /* [2] Adds padding to header/description card at lower resolution width
   * because mobile breakpoints remove all padding. */
  .dgc-hero-offset-inner > div:last-child {
    margin-top: -144px !important; /* [1] */
    padding: 32px !important; /* [2] */
    width: calc(100% - 64px);
  }
}

/* Home page template - I/O Fullscreen takeover */
.dgc-hero-fullscreen {
  --dgc-hero-grid:
    '. . . .' 3fr
    '. heading . .'
    '. item . .'
    '. . . .' .4fr / 65px 500px 5fr 65px;
  --dgc-hero-heading-font-size: 60px;
  --dgc-hero-heading-line-height: 64px;
  --dgc-hero-margin: 0 calc(-50vw + 50%);
}

.dgc-hero-fullscreen-item {
  --dgc-hero-fullscreen-item-padding: 24px;
}

.dgc-hero-fullscreen-row::after {
  --dgc-hero-background: url(/homepage-assets/images/io-promo-2023-badge.svg)
      no-repeat top 38px left 38px / 300px,
      url(/homepage-assets/images/io-promo-2023.png)
      no-repeat top right 10vw / auto 100vh #202124
}

/* Hide the banner on the homepage while DevCenter experiments are running. */
.dgc-hero-fullscreen .devsite-banner-announcement {
  display: none;
}

@media screen and (min-width: 2000px) {
  .dgc-hero-fullscreen {
    --dgc-hero-grid:
      '. . . .' 1.5fr
      '. heading . .'
      '. item . .'
      '. . . .' .4fr / 80px 25vw 5fr 80px;
  }

  .dgc-hero-fullscreen-row::after {
    --dgc-hero-background: url(/homepage-assets/images/io-promo-2023-badge.svg)
        no-repeat top 38px left 38px / 18vw auto,
        url(/homepage-assets/images/io-promo-2023.png)
        no-repeat top right 10vw / contain #202124
  }

  .dgc-hero-fullscreen-row h2 {
    --dgc-hero-heading-font-size: 3vw;
    --dgc-hero-heading-line-height: 3vw;
  }

  .dgc-hero-fullscreen-item {
    --dgc-hero-fullscreen-item-padding: 1.5vw;
  }
}

@media screen and (max-width: 1440px) {
  .dgc-hero-fullscreen-row::after {
    --dgc-hero-background: url(/homepage-assets/images/io-promo-2023-badge.svg)
      no-repeat top 38px left 38px / 300px,
      url(/homepage-assets/images/io-promo-2023.png)
      no-repeat top right / cover #202124;
  }
}

@media screen and (max-width: 800px) {
  .dgc-hero-fullscreen {
    --dgc-hero-grid:
      '. .' 7fr
      '. .'
      'item .'
      '. .' .75fr / 5fr 1fr;
    --dgc-hero-margin: 0;
  }

  .dgc-hero-fullscreen-row::after {
    --dgc-hero-background: url(/homepage-assets/images/io-promo-2023-badge.svg)
      no-repeat top left / 300px,
      url(/homepage-assets/images/io-promo-2023-tablet.png)
      no-repeat top left / cover #202124;
  }
}

@media screen and (max-width: 600px) {
  .dgc-hero-fullscreen {
    --dgc-hero-grid:
      '.' 5fr
      '.'
      'item'
      '.' .75fr / 1fr;
    --dgc-hero-heading-font-size: 40px;
    --dgc-hero-heading-line-height: 42px;
  }

  .dgc-hero-fullscreen-row::after {
    --dgc-hero-background: url(/homepage-assets/images/io-promo-2023-badge.svg)
        no-repeat top 6px left 4px / 50vw,
        url(/homepage-assets/images/io-promo-2023-mobile.png)
        no-repeat top left / cover #202124;
  }
}

@media screen and (max-width: 600px) and (max-height: 410px) {
  .dgc-hero-fullscreen {
    --dgc-hero-heading-font-size: 32px;
    --dgc-hero-heading-line-height: 34px;
  }

  .dgc-hero-fullscreen-item {
    --dgc-hero-fullscreen-item-padding: 12px;
  }
}

/* [1] Override default overflow hidden property to allow sticky properties,
 * which allows fullscreen takeover to slide over the below content. */
.dgc-hero-fullscreen .devsite-wrapper {
  overflow: unset !important; /* [1] */
}

/* [1] Override primary color background so that the row has a transparent
 * background that doesn't cover up the background image. */
.dgc-hero-fullscreen-row {
  background: transparent !important; /* [1]  */
  overflow: hidden;
  padding: 0;
  position: relative;
  z-index: 1;
}

.dgc-hero-fullscreen-row::after,
.dgc-hero-fullscreen-row .devsite-landing-row-html {
  height: calc(100vh - 48px);
}

.dgc-hero-fullscreen-row::after {
  background: var(--dgc-hero-background);
  content: '';
  position: absolute;
  top: 0;
  width: 100vw;
}

.dgc-hero-fullscreen-row .devsite-landing-row-html {
  display: grid;
  grid: var(--dgc-hero-grid);
  margin: var(--dgc-hero-margin);
}

.dgc-hero-fullscreen-row h2,
.dgc-hero-fullscreen-item {
  z-index: 1;
}

.dgc-hero-fullscreen-row h2 {
  font-size: var(--dgc-hero-heading-font-size);
  font-weight: 500;
  grid-area: heading;
  line-height: var(--dgc-hero-heading-line-height);
  margin-block: unset;
}

.dgc-hero-fullscreen-item {
  background: var(--tenant-background-1);
  border: var(--tenant-primary-border);
  border-radius: 8px;
  font: normal 20px 'Google Sans';
  grid-area: item;
  padding: var(--dgc-hero-fullscreen-item-padding);
}

.dgc-hero-fullscreen-item p {
  margin-block: var(--dgc-hero-fullscreen-item-padding);
}

.dgc-hero-fullscreen-row a {
  background: #fbbc04;
  border: 1px solid #202124;
  color: #202124;
}

.dgc-hero-fullscreen-row a.button:hover {
  background: #f9ab00;
  border: 1px solid #202124;
  color: #202124;
}

.dgc-hero-fullscreen-row a.button:focus,
.dgc-hero-fullscreen-row a.button:active {
  background: #f29900;
  border: 1px solid #202124;
  color: #202124;
}

/* Home page - logo garden following fullscreen hero */
.dgc-hero-fullscreen-row + .dgc-logo-garden {
  bottom: -30vh;
  position: sticky;
}

.dgc-hero-fullscreen-row + .dgc-recs-carousel {
  bottom: -10vh;
  position: sticky;
}

/* Home page - hero */
/* Add a border between the hero and any following row other than .dgc-recs */
.dgc-hero + .devsite-landing-row:not(.dgc-recs) {
  border-top: 2px solid #f1f3f4;
}

.dgc-hero img {
  aspect-ratio: 720 / 416;
}

.dgc-hero .devsite-landing-row-item .devsite-landing-row-item-body h3 {
  font-size: 32px;
  line-height: 40px;
}

.dgc-hero .devsite-landing-row-item-image {
  margin: 40px auto;
}

.dgc-hero .devsite-landing-row-item-buttons {
  padding-top: 38px;
}

.dgc-recs-fallback {
  padding-top: 46px;
}

/* Reduce bottom padding for row to compensate for the extra space taken up by
 * carousel markers. */
.dgc-recs-carousel {
  padding-bottom: 16px;
}

/* Markers are only visible above 600px, so normalize the row padding for
 * mobile. */
@media screen and (max-width: 600px) {
  .dgc-recs-carousel {
    padding: 16px 26px;
  }
}

/* Home page - recommended content fallback */
.dgc-recs-fallback h2 {
  display: flex;
  font-size: 16px;
  line-height: 24px;
  margin-block: 0 24px;
}

.dgc-recs-fallback[header-position='top']
  .devsite-landing-row-header +
  .devsite-landing-row-group {
  margin: 0;
}

.dgc-recs-fallback .devsite-landing-row-item-no-media h3 {
  font-size: 20px;
  line-height: 28px;
}

.dgc-recs-fallback .devsite-landing-row-item-icon-container[size],
.dgc-recs-fallback [size] .devsite-landing-row-item-icon {
  height: 32px;
  width: 32px;
}

/* Home page - logo garden */
.dgc-logo-garden .devsite-landing-row-item-custom-image-icon {
  width: 64px;
}

.dgc-logo-garden-cta {
  padding-bottom: 100px;
}

@media screen and (max-width: 600px) {
  .dgc-hero-fullscreen-row + .dgc-logo-garden {
    bottom: -70vh;
  }

  .dgc-logo-garden-cta {
    margin-top: 40px;
  }
}

/* Home page - programs */
.dgc-programs.devsite-landing-row-item {
  overflow: visible;
}

.dgc-programs .devsite-landing-row-item-image {
  position: relative;
}

.dgc-programs .devsite-landing-row-item-image::before {
  background: center / contain no-repeat;
  content: '';
  display: block;
  height: 160px;
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 160px;
}

.dgc-programs--events .devsite-landing-row-item-image::before {
  background-image: url(/site-assets/images/home/events-graphic.png);
}

.dgc-programs--community .devsite-landing-row-item-image::before {
  background-image: url(/site-assets/images/home/community-graphic.png);
}

@media screen and (max-width: 840px) {
  .dgc-programs .devsite-landing-row-item-media {
    overflow: visible !important;
  }
}

/* Home page - experts */
.devsite-directory__wrapper {
  padding: 0 12px 0;
}

.devsite-directory__content {
  display: grid;
  grid-gap: 24px;
  grid-template-columns: repeat(var(--directory-columns, 4), 1fr);
}

.devsite-directory__content__item {
  background-color: #fff;
  margin: 0;
  padding: 0;
}

.experts-row {
  overflow: hidden;
}

.experts-directory__item__profile {
  padding: 20px 20px 0;
  text-align: center;
}

.experts-directory__item__profile-pic-holder {
  background-size: cover;
  border-radius: 50%;
  display: block;
  height: 100px;
  margin: 0 auto 20px;
  overflow: hidden;
  position: relative;
  width: 100px;
}

.experts-directory__item__name {
  margin: 0;
}

.experts-directory__item__name h3 {
  font-size: 12px;
  font-style: normal;
  font-weight: 500;
  padding-top: 15px;
  text-align: center;
}

.experts-directory__item__location,
.experts-directory__item__experience {
  font: 400 14px/20px;
  margin-top: 0;
}

.experts-directory__item__expertise {
  color: gray;
}

.experts-directory__item__view-profile {
  margin: auto auto 16px;
}

@media screen and (max-width: 1000px) {
  .devsite-directory__content {
    --directory-columns: 2;
  }
}

@media screen and (max-width: 500px) {
  .devsite-directory__content {
    --directory-columns: 1;
  }
}

/* Google for Developers rebranding */
.dgc-build-smarter {
  align-items: center;
}

.dgc-build-smarter h3 {
  font: var(--dgc-build-smarter-font) !important;
  letter-spacing: unset;
}

.dgc-build-smarter div {
  font: 400 24px 'Google Sans';
  justify-content: center;
}

.dgc-ecosystem-bold-button,
.dgc-ecosystem-bold-button:hover,
.dgc-ecosystem-bold-button:focus,
.dgc-ecosystem-bold-button:active {
  border: 2px solid var(--tenant-primary-text-color);
}

.dgc-build-smarter-buttons > div:last-child::before {
  content: "I'm building for:";
  font: 700 24px 'Google Sans';
  margin-right: 24px;
  vertical-align: middle;
}

.dgc-build-smarter-buttons div {
  display: inline;
}

.dgc-build-smarter-buttons figure {
  pointer-events: none;
}

.dgc-web-ecosystem-cards header h2,
.dgc-ecosystem-solution-cards header h2,
.dgc-ecosystem-additional-solutions header h2,
.dgc-ecosystem-case-studies h2 {
  font: 700 48px 'Google Sans';
}

.dgc-web-ecosystem-cards header div,
.dgc-ecosystem-solution-cards header div,
.dgc-ecosystem-additional-solutions header div,
.dgc-ecosystem-case-studies header div {
  font: 400 24px 'Google Sans';
}

.dgc-web-ecosystem-card {
  flex-direction: row-reverse;
}

.dgc-web-ecosystem-card > div:first-child {
  align-self: center;
  padding-right: 16px;
}

/* Google for Developers rebranding */
/* [1] Overrides blue link color in favor of primary text color */
.dgc-web-ecosystem-card h3 > a,
.dgc-ecosystem-solution-card h3 > a,
.dgc-ecosystem-additional-solutions-card h3 > a {
  color: var(--tenant-primary-text-color) !important; /* [1] */
  font: 700 24px 'Google Sans';
}

.dgc-web-ecosystem-card h3 + div,
.dgc-ecosystem-solution-card h3 + div,
.dgc-ecosystem-additional-solutions-card h3 + div {
  font: 400 18px 'Roboto';
}

/* [1] Forces material icons in buttons to have 0 margin */
.dgc-web-ecosystem-card .material-icons,
.dgc-ecosystem-additional-solutions-card .material-icons,
.dgc-build-smarter-buttons .material-icons {
  margin: 0 !important; /* [1] */
}

.dgc-logo-garden.dgc-ecosystem-logo-garden h2 {
  font: 700 48px 'Google Sans';
}

.dgc-ecosystem-logo-garden + .dgc-logo-garden-cta {
  padding-top: 0;
}

.dgc-ecosystem-logo-garden .devsite-landing-row-item:not(
  .dgc-logo-garden-card) {
  background: var(--tenant-background-1);
  border: var(--tenant-primary-border);
  border-radius: 10px;
}

.dgc-ecosystem-logo-garden .devsite-landing-row-item:not(
  .dgc-logo-garden-card) > a {
  margin-bottom: auto;
}

.dgc-logo-garden-card {
  padding: 8px 32px 25px;
}

.dgc-logo-garden-card p:first-of-type {
  font-size: 18px;
}

.dgc-trending-row li > div {
  border-radius: 8px;
  height: 100%;
  padding: 32px 40px;
}

/* [1] Forces link color to be primary text color instead of blue */
.dgc-trending-row h3 a {
  color: var(--tenant-primary-text-color) !important; /* [1] */
  font: 700 32px 'Google Sans';
}

/* [1] Forces link color to be primary text color instead of blue */
.dgc-showcase-row h3 a {
  color: var(--tenant-primary-text-color) !important; /* [1] */
  font: 700 40px 'Google Sans';
}

.dgc-trending-row h3 + div,
.dgc-showcase-row h3 + div {
  color: #3c4043;
  font: 400 18px 'Roboto';
}

.dgc-trending-row .devsite-landing-row-item-labels span,
.dgc-showcase-row .devsite-landing-row-item-labels span {
  color: #0c333c;
  font: 400 14px 'Roboto';
}

.dgc-trending-row img,
.dgc-showcase-row figure img {
  border-radius: 10px;
}

.dgc-showcase-row:last-of-type {
  margin-bottom: 40px;
}

/* Carousel section */
.trending-carousel-bard img:first-of-type {
  display: block;
}

.trending-carousel-bard img:last-of-type {
  display: none;
}

.dgc-build-smarter h3 {
  --dgc-build-smarter-font: 700 100px 'Google Sans';
}

.trending-carousel {
  --trending-carousel-height: 540px;
}

.trending-carousel-slide {
  --trending-carousel-slide-flex-direction: row;
  --trending-carousel-slide-gap: 70px;
}

.trending-carousel-slide > div {
  --trending-carousel-slide-display: grid;
}

.trending-carousel-slide > div.trending-carousel-bard {
  --trending-carousel-slide-display: flex;
  --trending-carousel-slide-flex-direction: column-reverse;
  --trending-carousel-slide-gap: 0;
}

@media screen and (max-width: 1200px) {
  .dgc-build-smarter h3 {
    --dgc-build-smarter-font: 700 80px 'Google Sans';
  }
}

@media screen and (max-width: 960px) {
  .dgc-build-smarter-hero > div > div {
    display: flex;
    flex-direction: column;
  }

  .trending-carousel-slide {
    --trending-carousel-slide-flex-direction: column-reverse;
    --trending-carousel-slide-gap: 20px;
  }

  .trending-carousel-slide > div:not(.trending-carousel-bard)
  .devsite-landing-row-item-media {
    width: 50%;
  }

  .trending-carousel {
    --trending-carousel-height: 550px;
  }

  .trending-carousel-slide > div {
    --trending-carousel-slide-display: flex;
  }

  .trending-carousel-slide > div {
    --trending-carousel-slide-border: none;
  }

  .trending-carousel-slide img {
    border: var(--tenant-primary-border);
    border-radius: 10px;
  }

  .trending-carousel-bard img {
    padding: 50px 12px 60px;
  }
}

@media screen and (max-width: 850px) {
  .dgc-ecosystem-logo-garden > div > div {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media screen and (max-width: 600px) {
  .trending-carousel-slide {
    --trending-carousel-slide-gap: 0;
  }

  .trending-carousel {
    --trending-carousel-height: 585px;
  }

  .trending-carousel-slide > div:not(.trending-carousel-bard)
  .devsite-landing-row-item-media {
    width: 100%;
  }

  .trending-carousel-bard img:first-of-type {
    display: none;
  }

  .trending-carousel-bard img:last-of-type {
    display: block;
  }

  .trending-carousel-bard > div:last-of-type {
    margin-top: 24px !important;
  }

  .trending-carousel-bard > div:last-of-type > div > div {
    padding-top: 0 !important;
  }

  /* [1] Forces logo garden to be 1 column at 600px width */
  .dgc-ecosystem-logo-garden > div > div {
    grid-template-columns: 1fr !important; /* [1] */
  }
}

.dgc-trending-row > .devsite-landing-row-inner {
  margin: 0;
  min-width: 100%;
  padding: 0;
}

.trending-carousel {
  display: flex;
  height: var(--trending-carousel-height);
  justify-content: center;
  margin: 0;
  overflow: hidden;
  padding: 0;
  position: relative;
}

.trending-carousel-slide {
  align-items: center;
  animation: carousel 20s linear infinite;
  display: flex;
  height: 100%;
  justify-content: center;
  margin: 0 auto;
  max-width: 1488px;
  position: absolute;
  transform: translateX(100vw);
  width: 100%;
}

.trending-carousel-slide > div.trending-carousel-bard {
  align-items: baseline;
  padding: 32px 40px 54px;
  width: 100%;
}

.trending-carousel-slide > div.trending-carousel-bard img {
  width: 1100px;
}

.trending-carousel-slide > div {
  align-items: center;
  border: var(--trending-carousel-slide-border, var(--tenant-primary-border));
  display: var(--trending-carousel-slide-display);
  flex-direction: var(--trending-carousel-slide-flex-direction);
  gap: var(--trending-carousel-slide-gap);
  grid: auto-flow / 1fr 1fr;
  margin: 0 24px;
  width: 100%;
}

.trending-carousel-slide > div > div {
  grid-column: unset !important;
}

.trending-carousel > li:nth-child(1) {
  animation-delay: 0s, 20s;
  animation-duration: 20s;
  animation-iteration-count: 1, infinite;
  animation-name: first-picture, carousel;
  transform: translateX(0%);
}

.trending-carousel > li:nth-child(2) {
  animation-delay: Calc(20s * .5);
}

.trending-carousel-three-slide > li:nth-child(1) {
  animation-delay: 0s, 30s;
  animation-duration: 30s;
  animation-name: first-picture-three-slide, carousel-three-slide;
}

.trending-carousel-three-slide > .trending-carousel-slide {
  animation: carousel-three-slide 30s linear infinite;
}

.trending-carousel-three-slide > li:nth-child(2) {
  animation-delay: Calc(30s * .333);
}

.trending-carousel-three-slide > li:nth-child(3) {
  animation-delay: Calc(30s * .666);
}

.trending-carousel-four-slide > li:nth-child(1) {
  animation-delay: 0s, 40s;
  animation-duration: 40s;
  animation-name: first-picture-four-slide, carousel-four-slide;
}

.trending-carousel-four-slide > .trending-carousel-slide {
  animation: carousel-four-slide 40s linear infinite;
}

.trending-carousel-four-slide > li:nth-child(2) {
  animation-delay: Calc(40s * .25);
}

.trending-carousel-four-slide > li:nth-child(3) {
  animation-delay: Calc(40s * .5);
}

.trending-carousel-four-slide > li:nth-child(4) {
  animation-delay: Calc(40s * .75);
}

@keyframes first-picture {
  0% { transform: translateX(0%); }
  3.5%, 50% { transform: translateX(0); }
  53.5%, 100% { transform: translateX(-100vw); }
}

@keyframes carousel {
  0% { transform: translateX(100vw); }
  3.5%, 50% { transform: translateX(0); }
  53.5%, 100% { transform: translateX(-100vw); }
}

@keyframes first-picture-three-slide {
  0% { transform: translateX(0%); }
  3.5%, 33% { transform: translateX(0); }
  36.5%, 100% { transform: translateX(-100vw); }
}

@keyframes carousel-three-slide {
  0% { transform: translateX(100vw); }
  3.5%, 33% { transform: translateX(0); }
  36.5%, 100% { transform: translateX(-100vw); }
}

@keyframes first-picture-four-slide {
  0% { transform: translateX(0%); }
  3.5%, 25% { transform: translateX(0); }
  28.5%, 100% { transform: translateX(-100vw); }
}

@keyframes carousel-four-slide {
  0% { transform: translateX(100vw); }
  3.5%, 25% { transform: translateX(0); }
  28.5%, 100% { transform: translateX(-100vw); }
}

/* [1] Forces carousel slide grid-column to be unset */
.trending-carousel-slide > div > div {
  grid-column: unset !important; /* [1] */
}

/* Tech stack pages */
/* [1] Overrides font of page header */
.dgc-ecosystem-header h3 {
  font: 700 100px 'Google Sans' !important; /* [1] */
  margin-bottom: 6px;
}

.dgc-ecosystem-header div {
  font: 400 24px 'Google Sans';
}

.dgc-ecosystem-header-mobile {
  background: var(--dgc-ecosystem-header-mobile-background);
  padding: var(--dgc-ecosystem-header-mobile-padding);
}

.dgc-ecosystem-header-web {
  background: var(--dgc-ecosystem-header-web-background);
  padding: var(--dgc-ecosystem-header-web-padding);
}

.dgc-ecosystem-header-cloud {
  background: var(--dgc-ecosystem-header-cloud-background);
  padding: var(--dgc-ecosystem-header-cloud-padding);
}

.dgc-ecosystem-header-ai {
  background: var(--dgc-ecosystem-header-ai-background);
  padding: var(--dgc-ecosystem-header-ai-padding);
}

.dgc-ecosystem-related {
  background: #e8f0fe;
}

.dgc-ecosystem-solution-cards-paginator {
  display: grid;
  gap: 24px;
  grid: auto-flow / repeat(auto-fit, minmax(350px, 1fr));
  margin-bottom: 24px;
}

.dgc-ecosystem-solution-card {
  border: var(--tenant-primary-border);
  border-radius: 8px;
}

.dgc-ecosystem-solution-card .devsite-landing-row-item-labels {
  display: flex;
  justify-content: space-between;
}

.dgc-ecosystem-solution-card .devsite-landing-row-item-labels > span:last-of-type {
  align-items: center;
  display: flex;
}

.dgc-ecosystem-solution-card .devsite-landing-row-item-labels img {
  margin-left: 12px;
  max-height: 24px;
  max-width: 24px;
  min-width: 24px;
}

.dgc-ecosystem-case-study .devsite-landing-row-item-labels span {
  font: 400 14px 'Roboto';
}

.dgc-ecosystem-case-study h3 a {
  color: #202124;
  font: 700 24px 'Google Sans';
}

.dgc-ecosystem-case-study > div:first-child {
  padding: 24px 24px 0;
}

.dgc-ecosystem-additional-solutions-card > div:first-child {
  order: 1;
  padding: 25px;
}

.dgc-ecosystem-additional-solutions-card {
  display: grid;
  grid: auto-flow / 1.5fr 1fr;
}

.dgc-ecosystem-additional-solutions-card img {
  height: 95px;
  width: auto;
}

/* [1] Forces background color of row to be #f8f9fa instead of white */
.dgc-ecosystem-additional-solutions {
  background: #f8f9fa !important; /* [1] */
}

.dgc-ecosystem-header-mobile {
  --dgc-ecosystem-header-mobile-background: url(/focus/images/mobile-header.png)
    no-repeat center center / min(calc(100vw - 66px), 1436px);
  --dgc-ecosystem-header-mobile-padding: min(9vw, 150px) 0;
}

.dgc-ecosystem-header-web {
  --dgc-ecosystem-header-web-background: url(/focus/images/web-header.png)
    no-repeat center center / min(calc(100vw - 66px), 1436px);
  --dgc-ecosystem-header-web-padding: min(9vw, 150px) 0;
}

.dgc-ecosystem-header-cloud {
  --dgc-ecosystem-header-cloud-background: url(/focus/images/cloud-header.png)
    no-repeat center center / min(calc(100vw - 66px), 1436px);
  --dgc-ecosystem-header-cloud-padding: min(9vw, 150px) 0;
}

.dgc-ecosystem-header-ai {
  --dgc-ecosystem-header-ai-background: url(/focus/images/ai-header.png)
    no-repeat center center / min(calc(100vw - 66px), 1436px);
  --dgc-ecosystem-header-ai-padding: min(9vw, 150px) 0;
}

@media screen and (max-width: 1000px) {
  .dgc-ecosystem-header-mobile {
    --dgc-ecosystem-header-mobile-background:
      url(/focus/images/mobile-header-mobile.png)
      no-repeat top 30px left 30px / 50vw;
    --dgc-ecosystem-header-mobile-padding: 36vw 0 50px;
  }

  .dgc-ecosystem-header-web {
    --dgc-ecosystem-header-web-background:
      url(/focus/images/web-header-mobile.png)
      no-repeat top 30px left 30px / 50vw;
    --dgc-ecosystem-header-web-padding: 36vw 0 50px;
  }

  .dgc-ecosystem-header-cloud {
    --dgc-ecosystem-header-cloud-background:
      url(/focus/images/cloud-header-mobile.png)
      no-repeat top 30px left 30px / 50vw;
    --dgc-ecosystem-header-cloud-padding: 36vw 0 50px;
  }

  .dgc-ecosystem-header-ai {
    --dgc-ecosystem-header-ai-background:
      url(/focus/images/ai-header-mobile.png)
      no-repeat top 30px left 30px / 50vw;
    --dgc-ecosystem-header-ai-padding: 36vw 0 50px;
  }
}

@media screen and (max-width: 840px) {
  .dgc-ecosystem-additional-solutions-card {
    grid: unset;
  }
}

@media screen and (max-width: 600px) {
  /* [1] Forces logo garden to be 1 column at 600px width */
  .dgc-ecosystem-logo-garden > div > div {
    grid-template-columns: 1fr !important; /* [1] */
  }

  .dgc-ecosystem-header-mobile {
    --dgc-ecosystem-header-mobile-background:
      url(/focus/images/mobile-header-mobile.png)
      no-repeat top 30px left 30px / calc(100vw - 66px);
    --dgc-ecosystem-header-mobile-padding: 58vw 0 50px;
  }

  .dgc-ecosystem-header-web {
    --dgc-ecosystem-header-web-background:
      url(/focus/images/web-header-mobile.png)
      no-repeat top 30px left 30px / calc(100vw - 66px);
    --dgc-ecosystem-header-web-padding: 58vw 0 50px;
  }

  .dgc-ecosystem-header-cloud {
    --dgc-ecosystem-header-cloud-background:
      url(/focus/images/cloud-header-mobile.png)
      no-repeat top 30px left 30px / calc(100vw - 66px);
    --dgc-ecosystem-header-cloud-padding: 58vw 0 50px;
  }

  .dgc-ecosystem-header-ai {
    --dgc-ecosystem-header-ai-background:
      url(/focus/images/ai-header-mobile.png)
      no-repeat top 30px left 30px / calc(100vw - 66px);
    --dgc-ecosystem-header-ai-padding: 58vw 0 50px;
  }
}
