/* 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;
  }
}
