/* Component styles for gillrath-site shortcodes/templates, extracted from the previous child theme.
   Only rules for these components are kept; page layout lives in Divi (presets + raster). */
[class*=ratio-] {
  display: block;
  position: relative;
  overflow: hidden;
}

[class*=ratio-]:before {
  content: "";
  display: block;
}

[class*=ratio-] img {
  position: absolute;
  -o-object-fit: cover;
  object-fit: cover;
  top: 0;
  width: auto;
  min-height: 100%;
  min-width: 100%;
  height: auto;
}

.ratio-1\:1:before {
  padding-top: 100%;
}

.ratio-16\:9:before {
  padding-top: 56.25%;
}

.ratio-4\:3:before {
  padding-top: 75%;
}

.ratio-3\:4:before {
  padding-top: 133.3333333333%;
}

.ratio-2\:3:before,
.ratio-2-3:before {
  padding-top: 150%;
}

.ratio-3\:2:before,
.ratio-3-2:before {
  padding-top: 66.6666666667%;
}

.ratio-8\:3:before {
  padding-top: 37.5%;
}

.flip-book-wrapper .et_pb_code_inner {
  height: 80vh;
  padding-bottom: 2em;
  display: block;
  position: relative;
}

.et_pb_section.teaser-with-blurb {
  --iconTransform: translate(-2.75em, -0.1em);
}

.et_pb_section.teaser-with-blurb .et_pb_row .et_pb_column {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: var(--gap);
}

@media screen and (max-width: 768px) {
  .et_pb_section.teaser-with-blurb .et_pb_row .et_pb_column {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    padding-inline: 4em;
  }
}

.et_pb_section.teaser-with-blurb .et_pb_blurb_content {
  display: grid;
  grid-template-columns: 2em repeat(6, 1fr);
  gap: var(--gap);
  position: relative;
}

.et_pb_section.teaser-with-blurb .et_pb_blurb_content .et_pb_main_blurb_image {
  grid-column: 1/2;
  grid-row: 1/2;
  -webkit-transform: var(--iconTransform);
  transform: var(--iconTransform);
}

.et_pb_section.teaser-with-blurb .et_pb_blurb_content .et_pb_main_blurb_image .et_pb_image_wrap {
  display: flex;
  justify-content: flex-start;
}

.et_pb_section.teaser-with-blurb .et_pb_blurb_content .et_pb_main_blurb_image .et_pb_image_wrap .et-pb-icon {
  font-size: 2em;
}

.et_pb_section.teaser-with-blurb .et_pb_blurb_content .et_pb_main_blurb_image .et_pb_image_wrap img {
  width: 2em;
  height: auto;
}

.et_pb_section.teaser-with-blurb .et_pb_blurb_content .et_pb_blurb_container {
  grid-column: 1/7;
  grid-row: 1/2;
}

.et_pb_section.teaser-with-blurb .et_pb_blurb_content .et_pb_blurb_container h4.et_pb_module_header {
  font-size: var(--fontSize);
}

.et_pb_section.teaser-with-blurb .et_pb_blurb_content .et_pb_blurb_container .et_pb_blurb_description {
  font-size: var(--fontSize);
}

.simple-image-grid .et_pb_code_inner {
  display: grid;
  grid-template-columns: var(--gridTemplateColumns);
  background: none;
  background: #000;
  grid-gap: var(--gap);
  align-items: baseline;
}

.sustainability {
  width: 100%;
  display: block;
  padding-top: 0;
  --ecoGreen: #090;
  position: relative;
  margin-bottom: 5vh;
}

.sustainability:before {
  position: absolute;
  background: var(--ecoGreen);
  display: block;
  top: 0;
  content: "";
  width: 100%;
  height: 15vh;
  z-index: -2;
  -webkit-transform-origin: bottom left;
  transform-origin: bottom left;
  -webkit-transform: skewY(-2deg);
  transform: skewY(-2deg);
}

.sustainability:after {
  position: absolute;
  background: #fff;
  display: block;
  top: 0;
  content: "";
  width: 100%;
  height: 15vh;
  z-index: -1;
  -webkit-transform-origin: top left;
  transform-origin: top left;
  -webkit-transform: translateY(2.5em);
  transform: translateY(2.5em);
}

.sustainability ol {
  position: relative;
  display: flex;
  flex-wrap: nowrap;
  overflow-x: scroll;
  padding-bottom: 2em;
  width: auto;
  gap: var(--gap);
}

.sustainability ol::-webkit-scrollbar,
.sustainability ol::-webkit-scrollbar {
  height: 5px;
}

.sustainability ol::-webkit-scrollbar-track,
.sustainability ol::-webkit-scrollbar-track {
  border-bottom: 1px solid var(--ecoGreen);
}

.sustainability ol::-webkit-scrollbar-thumb,
.sustainability ol::-webkit-scrollbar-thumb {
  background-color: var(--ecoGreen);
  outline: none;
}

.sustainability ol>* {
  flex: 0 0 25em;
}

.sustainability ol li {
  display: flex;
  flex-direction: column;
  padding-bottom: 2em;
}

.sustainability ol li:first-child {
  margin-left: var(--gap);
}

.sustainability ol li:last-child {
  margin-right: var(--gap);
}

.sustainability ol li h3 {
  color: #fff;
  font-size: var(--fontSizeBig);
  position: relative;
}

.sustainability ol li h3:after {
  content: "";
  border: 2px solid var(--ecoGreen);
  aspect-ratio: var(--gillBarRatio);
  position: absolute;
  bottom: -0.5em;
  left: 0;
  width: 4em;
}

.sustainability ol li h4 {
  clear: both;
  font-size: var(--fontSize);
  font-weight: bold;
  padding-top: 1.95em;
}

.sustainability ol li p {
  font-size: var(--fontSizeSmall);
}

.architectinfo {
  text-transform: lowercase;
}

.architectinfo a:after {
  content: "jump out";
}

.dnAcfPARProduct .et_pb_code_inner {
  display: grid;
  margin: var(--gap);
  gap: var(--gap);
  grid-template-columns: var(--gridTemplateColumns);
}

.et-db #et-boc .dnAcfRepeaterArtInfo,
body .dnAcfRepeaterArtInfo {
  color: var(--white);
}

.gill-section-timeline-header {
  background: var(--lightestGrey);
}

.gill-section-timeline-header .et_pb_column {
  display: flex;
  justify-content: center;
}

@media screen and (max-width: 1169px) {
  .gill-section-timeline-header .et_pb_column {
    justify-content: flex-start;
  }
}

.gill-section-timeline-header .et_pb_module.et_pb_text {
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
}

.gill-section-timeline-header .et_pb_module.et_pb_text .et_pb_text_inner h1 {
  font-size: var(--fontSizeBiggest) !important;
  font-weight: bold;
}

@media screen and (max-width: 1169px) {
  .gill-section-timeline-header .et_pb_module.et_pb_text {
    -webkit-transform: translate3d(6vw, 6vw, 0);
    transform: translate3d(6vw, 6vw, 0);
  }
}

.gill-section-timeline-header+*.et_pb_section {
  background: var(--lightestGrey);
}

.et-boc .dnxte-timeline-wrapper {
  width: initial;
  max-width: initial;
  background: var(--lightestGrey);
}

#dnxte-timline {
  margin: 0 15vw;
}

#dnxte-timline:before {
  background: var(--maroon);
}

#dnxte-timline .dnxte-timline-img.dnxte-timeline-pic {
  background: var(--maroon);
}

@media screen and (max-width: 1169px) {
  #dnxte-timline .dnxte-timline-img.dnxte-timeline-pic {
    display: none;
  }
}

#dnxte-timline .dnxte-timline-content {
  -webkit-transform: translateY(-0.5em);
  transform: translateY(-0.5em);
  background: #fff;
  padding: 0;
}

@media screen and (max-width: 1169px) {
  #dnxte-timline .dnxte-timline-content {
    margin-top: 4em;
  }
}

@media screen and (max-width: 580px) {
  #dnxte-timline .dnxte-timline-content {
    margin: 0;
    margin-top: 4em;
  }

  #dnxte-timline .dnxte-timline-content:before {
    display: none;
  }
}

#dnxte-timline h2.dnxte-timline-heading {
  width: 30%;
  background: var(--maroon);
  color: #fff;
  border-radius: 50%;
  height: 2.8em;
  width: 2.8em;
  display: flex;
  place-content: center center;
  align-items: center;
  line-height: 4em;
  padding: 0;
  -webkit-transform: translateY(-1.4em);
  transform: translateY(-1.4em);
  border: 0.3em solid #fff;
  left: 50%;
  position: absolute;
  margin-left: -1.4em;
  text-shadow: -4px 4px 0 var(--maroon), 4px 4px 0 var(--maroon), 4px -4px 0 var(--maroon), -4px -4px 0 var(--maroon);
  text-shadow: var(--maroon) 3px 0px 0px, var(--maroon) 2.83487px 0.981584px 0px, var(--maroon) 2.35766px 1.85511px 0px, var(--maroon) 1.62091px 2.52441px 0px, var(--maroon) 0.705713px 2.91581px 0px, var(--maroon) -0.287171px 2.98622px 0px, var(--maroon) -1.24844px 2.72789px 0px, var(--maroon) -2.07227px 2.16926px 0px, var(--maroon) -2.66798px 1.37182px 0px, var(--maroon) -2.96998px 0.42336px 0px, var(--maroon) -2.94502px -0.571704px 0px, var(--maroon) -2.59586px -1.50383px 0px, var(--maroon) -1.96093px -2.27041px 0px, var(--maroon) -1.11013px -2.78704px 0px, var(--maroon) -0.137119px -2.99686px 0px, var(--maroon) 0.850987px -2.87677px 0px, var(--maroon) 1.74541px -2.43999px 0px, var(--maroon) 2.44769px -1.73459px 0px, var(--maroon) 2.88051px -0.838247px 0px;
  font-size: 2em;
  font-family: montserrat, futura, raleway, lucida, monsal, sans-serif;
}

#dnxte-timline .dnxte-timline-pra {
  padding: 2em 2em 0 2em;
}

#dnxte-timline .dnxte-timline-date {
  display: none;
}

#dnxte-timline2 .dnxte-timline-img.dnxte-timeline-pic {
  background: var(--maroon);
}

@media screen and (max-width: 768px) {
  #dnxte-timline2 .dnxte-timline-img.dnxte-timeline-pic {
    display: none;
  }
}

#dnxte-timline2 .dnxte-timline-content {
  margin-bottom: 4em;
}

#dnxte-timline2 h2.dnxte-timline-heading {
  width: 30%;
  background: var(--maroon);
  color: #fff;
  border-radius: 50%;
  height: 2.8em;
  width: 2.8em;
  display: flex;
  place-content: center center;
  align-items: center;
  line-height: 4em;
  padding: 0;
  -webkit-transform: translateY(-1.4em);
  transform: translateY(-1.4em);
  border: 0.3em solid #fff;
  left: 50%;
  position: absolute;
  margin-left: -1.4em;
  text-shadow: -4px 4px 0 var(--maroon), 4px 4px 0 var(--maroon), 4px -4px 0 var(--maroon), -4px -4px 0 var(--maroon);
  font-size: 2em;
  font-family: montserrat, futura, raleway, lucida, monsal, sans-serif;
}

#dnxte-timline2 .dnxte-timline-pra {
  padding: 3em 3em;
}

#dnxte-timline2 .dnxte-timline-pra p:first-child,
#dnxte-timline2 .dnxte-timline-pra p:last-child {
  display: none !important;
}

#dnxte-timline2 .dnxte-timline-block:after {
  display: none;
}

#dnxte-timline2 .dnxte-timline-content {
  background: #fff;
  padding: 0;
}

#dnxte-timline2 .dnxte-timline-date {
  display: none;
}

.gill-scroll-fun-wrapper {
  --half: 50%;
  --height: 100vh;
  --halfViewport: 50vh;
  --posSticky: sticky;
  --flexDir: row;
  display: flex;
}

.gill-scroll-fun-wrapper>* {
  flex: 0 0 var(--half);
}

.gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger section {
  min-height: var(--height);
  display: flex;
  align-items: center;
}

.gill-scroll-fun-wrapper .gill-scroll-fun-images-wrapper {
  position: var(--posSticky);
  top: 0;
  right: 0;
  height: var(--height);
}

.gill-scroll-fun-wrapper .gill-scroll-fun-images-wrapper .gill-scroll-fun-images img {
  top: 0;
  position: absolute;
  min-width: 100%;
  min-height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

@media (orientation: portrait) {
  .gill-scroll-fun-wrapper {
    --posSticky: fixed;
    --halfViewport: 50vh;
    --flexDir: column;
    flex-direction: var(--flexDir);
    height: auto;
    padding-top: var(--halfViewport);
  }

  .gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger {
    overflow-y: scroll;
    height: var(--half);
  }

  .gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger section {
    min-height: var(--halfViewport);
  }

  .gill-scroll-fun-wrapper .gill-scroll-fun-images-wrapper {
    position: var(--posSticky);
    order: -1;
    height: var(--halfViewport);
    width: 100%;
    overflow: hidden;
  }
}

.gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger .gill-scroll-fun-info {
  flex: 0 0 100%;
  padding: 20vh 0;
}

.gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger .gill-scroll-fun-info h2,
.gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger .gill-scroll-fun-info h3 {
  -webkit-transform-origin: right;
  transform-origin: right;
}

.gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger .gill-scroll-fun-info div.centeredBox {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(6, var(--colWidthVW));
  grid-template-rows: -webkit-min-content 1fr;
  grid-template-rows: min-content 1fr;
  grid-gap: var(--colGapWidthVW);
  font-size: var(--fontSize);
}

.gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger .gill-scroll-fun-info h2,
.gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger .gill-scroll-fun-info h3 {
  text-align: right;
  grid-column: 2/4;
}

.gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger .gill-scroll-fun-info h3 {
  grid-row: 2/3;
}

.gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger .gill-scroll-fun-info div.wysiwyg {
  grid-column: 4/7;
  grid-row: 1/3;
}

.gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger .gill-scroll-fun-info+.gill-scroll-fun-info {
  margin-top: 50vh;
}

@media (orientation: portrait) {
  .gill-scroll-fun-wrapper .gill-scroll-fun-scrolltrigger .gill-scroll-fun-info div.centeredBox {
    grid-template-columns: repeat(6, calc(var(--colWidthVW) * 2));
  }
}

section.gill-scroll-fun {
  display: none;
}

.gill-fullscreen-scroller-wrapper {
  --half: 50%;
  --height: 100vh;
  --halfViewport: 50vh;
  --posSticky: sticky;
  --flexDir: row;
  display: flex;
}

.gill-fullscreen-scroller-wrapper>* {
  flex: 0 0 var(--half);
}

.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger section {
  min-height: var(--height);
  display: flex;
  align-items: center;
}

.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-images-wrapper {
  position: var(--posSticky);
  top: 0;
  right: 0;
  height: var(--height);
  overflow: hidden;
}

.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-images-wrapper .gill-fullscreen-scroller-images img {
  top: 0;
  position: absolute;
  min-width: 100%;
  min-height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

@media (orientation: portrait) and (max-width: 980px) {
  .gill-fullscreen-scroller-wrapper {
    --posSticky: fixed;
    --halfViewport: 50vh;
    --flexDir: column;
    flex-direction: var(--flexDir);
    height: auto;
    padding-top: var(--halfViewport);
  }

  .gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger {
    overflow-y: scroll;
    height: var(--half);
  }

  .gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger section {
    min-height: var(--halfViewport);
  }

  .gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info div.centeredBox {
    grid-template-columns: 1fr [content-start] repeat(12, 1fr) [content-end] 1fr;
  }

  .gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-images-wrapper {
    position: var(--posSticky);
    order: -1;
    height: var(--halfViewport);
    width: 100%;
  }

  .gill-fullscreen-scroller-wrapper .bigUnderline {
    margin-left: auto;
  }
}

.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info {
  flex: 0 0 100%;
  padding: 20vh 0;
}

.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info h2,
.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info h3 {
  -webkit-transform-origin: right;
  transform-origin: right;
}

.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info div.centeredBox {
  display: grid;
  width: 100%;
  grid-template-rows: -webkit-min-content 1fr;
  grid-template-rows: min-content 1fr;
  grid-gap: var(--colGapWidthVW);
  font-size: var(--fontSize);
}

.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info h2,
.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info h3 {
  text-align: right;
  grid-column: 2/7;
}

.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info h3 {
  grid-row: 2/3;
}

.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info div.wysiwyg {
  grid-column: 7/13;
  grid-row: 1/3;
}

.gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info+.gill-fullscreen-scroller-info {
  margin-top: 50vh;
}

@media (orientation: landscape) and (min-width: 98px) {
  .gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info div.centeredBox {
    grid-template-columns: auto 20vw 20vw auto;
  }

  .gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info h2,
  .gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info h3 {
    grid-column: 2/3;
  }

  .gill-fullscreen-scroller-wrapper .gill-fullscreen-scroller-scrolltrigger .gill-fullscreen-scroller-info div.wysiwyg {
    grid-column: 3/4;
  }
}

section.gill-fullscreen-scroller {
  display: none;
}

.et-db #et-boc section.eightNewInstagram .gillGrid__inner,
.et-db #et-boc section.newInstagram .gillGrid__inner,
body section.eightNewInstagram .gillGrid__inner,
body section.newInstagram .gillGrid__inner {
  grid-column: 6/10;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-column-gap: var(--gap);
  line-height: calc(var(--lineHeightFactor) * 1em);
}

.et-db #et-boc section.eightNewInstagram .gillGrid__inner>*,
.et-db #et-boc section.newInstagram .gillGrid__inner>*,
body section.eightNewInstagram .gillGrid__inner>*,
body section.newInstagram .gillGrid__inner>* {
  margin-bottom: var(--gapY);
}

.et-db #et-boc gillrath-instagram-slider,
body gillrath-instagram-slider {
  max-width: 500px !important;
  font-size: var(--fontSizeSmall);
}

.et-db #et-boc gillrath-instagram-slider h1,
body gillrath-instagram-slider h1 {
  font-size: var(--fontSizeSmall);
  line-height: calc(var(--lineHeightFactor) * 1em);
  line-height: 1.7em;
}

.et-db #et-boc gillrath-instagram-slider p,
.et-db #et-boc gillrath-instagram-slider ul,
.et-db #et-boc gillrath-instagram-slider a,
body gillrath-instagram-slider p,
body gillrath-instagram-slider ul,
body gillrath-instagram-slider a {
  font-size: var(--fontSizeSmallest);
  line-height: calc(var(--lineHeightFactor) * 1em);
}

.et-db #et-boc gillrath-instagram-slider details summary h1,
body gillrath-instagram-slider details summary h1 {
  display: inline;
}

.et-db #et-boc gillrath-instagram-slider details time,
body gillrath-instagram-slider details time {
  font-family: var(--jennyKursif);
}

.et-db #et-boc gillrath-instagram-slider details p,
body gillrath-instagram-slider details p {
  text-transform: none;
}

.et-db #et-boc gillrath-instagram-slider details a,
body gillrath-instagram-slider details a {
  display: none;
}

.et-db #et-boc gillrath-instagram-slider a.internal-link,
body gillrath-instagram-slider a.internal-link {
  display: none;
}

.gillrath_get_clients_shortcode {
  padding: var(--gapY) 0;
}

.gillrath_get_clients_shortcode .get_clients_swiper {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  position: relative;
}

/* Swiper core (live ships it inside its combined CSS; here only what the logo slider needs) */
.gillrath_get_clients_shortcode .get_clients_swiper {
  overflow: hidden;
}

.gillrath_get_clients_shortcode .get_clients_swiper .swiper-wrapper {
  display: flex;
  box-sizing: content-box;
  width: 100%;
}

.gillrath_get_clients_shortcode .get_clients_swiper .swiper-slide {
  flex-shrink: 0;
}

.gillrath_get_clients_shortcode .get_clients_swiper .swiper-slide {
  text-align: center;
  font-size: 18px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.gillrath_get_clients_shortcode .get_clients_swiper img {
  aspect-ratio: 3/2;
  width: 100%;
  height: auto;
}

.gillrath_get_clients_shortcode .get_clients_swiper .logo-for-slider {
  border-bottom: 1px solid var(--maroon);
}

.gillrath_get_clients_shortcode .get_clients_swiper a {
  position: relative;
  z-index: 1;
}

.gillrath_get_clients_shortcode .get_clients_swiper a:after {
  font-family: var(--jennyKursif);
  content: "i";
  display: flex;
  justify-content: center;
  align-items: center;
  width: 1.4em;
  height: 1.4em;
  bottom: 0;
  color: #fff;
  background-color: var(--maroon) !important;
  position: absolute;
  border-radius: 100%;
  -webkit-transform: translateY(0.75em);
  transform: translateY(0.75em);
  box-shadow: 0 0 0 0.75em #fff;
  z-index: 2;
  transition: box-shadow 0.3s ease;
}

.gillrath_get_clients_shortcode .get_clients_swiper a:hover:after,
.gillrath_get_clients_shortcode .get_clients_swiper a:focus:after {
  box-shadow: 0 0 0 1em #fff;
}

.gillrath_get_clients_shortcode .swiper-pagination-wrapper {
  display: flex;
  justify-content: center;
  margin-top: calc(var(--gapY) * 0.5);
}

.gillrath_get_clients_shortcode .swiper-pagination>* {
  margin: 0 0.5em;
}

.gillrath_get_clients_shortcode .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: var(--maroon);
}

.archive-endless-scroll .newest-ten-posts li,
.archive-endless-scroll .alm-listing li {
  list-style: none;
  margin: 0 auto;
  max-width: 25em;
  padding: 0;
  margin-top: var(--spacer);
}

.archive-endless-scroll .newest-ten-posts time,
.archive-endless-scroll .alm-listing time {
  font-family: var(--jennyKursif);
}

.et-db #et-boc .alm-btn-wrap.alm-load-more-btn,
body .alm-btn-wrap.alm-load-more-btn {
  background-color: var(--maroon);
}

#gill-references-and-products .gill-references-and-products-wrapper.bg-black .stoneformats {
  display: none !important;
}

.et-db #et-boc .referenceTitle h1,
body .referenceTitle h1 {
  font-size: var(--fontSizeBig);
  line-height: calc(var(--fontSizeBig) * var(--lineHeightFactor));
  font-weight: 700;
}

.divi-grid {
  display: grid;
  grid-gap: 3%;
  row-gap: 20px;
}

:is(.divi-grid).divi-grid-cols-4 {
  grid-template-columns: repeat(4, 1fr);
}

:is(.divi-grid).divi-grid-cols-3 {
  grid-template-columns: repeat(2, 1fr);
}

:is(.divi-grid).divi-grid-cols-2 {
  grid-template-columns: repeat(2, 1fr);
}

.divi-grid>* {
  outline: 1px solid;
}

.horizontal_slideshow .et_pb_code_inner {
  height: inherit;
}

.et-scroll-left:hover,
.et-scroll-right:hover {
  cursor: pointer;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.et-scroll-table .et-scroll-table-column:first-child {
  position: -webkit-sticky !important;
  position: sticky !important;
  min-width: 150px;
  z-index: 13;
  left: 0;
  font-weight: bold;
  color: var(--white);
  background-color: var(--maroon);
}

.et-scroll-table-column .et_pb_text {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 1em;
}

.et-scroll-table-column .et_pb_text:first-child {
  font-weight: bold;
  background-color: var(--maroon);
  color: var(--white);
}

.et-scroll-table-column .et_pb_text:not(.break),
.et-scroll-table-column .et_pb_text:not(.breakable) {
  white-space: nowrap;
}

.et-scroll-table::-webkit-scrollbar {
  display: none;
}

.et-scroll-table {
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
}

.referenceTitle {}

.shortfacts {}

/* Newsletter subscription form (external "The Newsletter Plugin" embed): full-width underlined fields, brand button. */
.tnp-subscription form {
  display: grid;
  gap: var(--gvid-gill-space-s, 1.5em);
  max-width: 40em;
}

.tnp-subscription .tnp-field {
  display: grid;
  gap: 0.3em;
}

.tnp-subscription label {
  font-weight: 700;
}

.tnp-subscription :is(input[type=text], input[type=email], select) {
  width: 100%;
  padding: 0.5em 0;
  font: inherit;
  color: inherit;
  background: transparent;
  border: 0;
  border-bottom: 2px solid var(--gcid-primary-color, #94004a);
  border-radius: 0;
}

.tnp-subscription :is(input, select):focus-visible {
  outline: 2px solid var(--gcid-primary-color, #94004a);
  outline-offset: 4px;
}

.tnp-subscription .tnp-submit {
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  color: #fff;
  background: var(--gcid-primary-color, #94004a);
  border: 0;
  padding: 0.7em 1.6em;
}

.tnp-subscription .tnp-submit:hover {
  background: var(--gcid-secondary-color, #ab1254);
}

/* custom scrollbar (menu etc.), same as the legacy theme */
.scrollbar {
  --scrollColor: var(--white);
}

.scrollbar-white {
  --scrollColor: var(--white);
}

.scrollbar-black {
  --scrollColor: var(--black, #000);
}

.scrollbar-maroon {
  --scrollColor: var(--maroon);
}

.scrollbar::-webkit-scrollbar {
  width: 5px;
}

.scrollbar::-webkit-scrollbar-track {
  border-left: 1px solid var(--scrollColor);
}

.scrollbar::-webkit-scrollbar-thumb {
  background-color: var(--scrollColor);
  outline: none;
}

/* Geschichte timeline: year badge + card arrow (ported from the dnxte timeline) */
.preset--module--divi-timeline--gill-timeline {
  --badge: 48px;
}

@media (min-width: 981px) {
  .preset--module--divi-timeline--gill-timeline {
    --badge: 72px;
  }
}

/* desktop: 1.5× */
.preset--module--divi-timeline--gill-timeline .et_pb_timeline_connector {
  width: 4px !important;
  margin-inline: -1px;
}

/* thicker line, still centred */
.preset--module--divi-timeline--gill-timeline .et_pb_timeline_card {
  position: relative;
  overflow: visible;
  margin-top: 1.8em;
  padding-top: calc(var(--badge) / 2 + 1em) !important;
}

.preset--module--divi-timeline--gill-timeline .et_pb_timeline_date {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--badge);
  height: var(--badge);
  border: calc(var(--badge) * 0.104) solid #fff;
  border-radius: 50%;
  background: var(--maroon);
  color: #fff !important;
  font-size: calc(var(--badge) * 0.354) !important;
  line-height: 1;
  --o: var(--maroon);
  text-shadow: 0.18em 0 0 var(--o), -0.18em 0 0 var(--o), 0 0.18em 0 var(--o), 0 -0.18em 0 var(--o),
    0.12em 0.12em 0 var(--o), -0.12em 0.12em 0 var(--o), 0.12em -0.12em 0 var(--o), -0.12em -0.12em 0 var(--o);
}

.preset--module--divi-timeline--gill-timeline .et_pb_timeline_card::before {
  content: "";
  position: absolute;
  top: 16px;
  width: 0;
  height: 0;
  border: 7px solid transparent;
}

/* >767px: cards alternate; odd = left of the line (arrow points right), even = right (arrow points left) */
.preset--module--divi-timeline--gill-timeline .et_pb_timeline_item:nth-child(odd) .et_pb_timeline_card::before {
  left: 100%;
  border-left-color: #fff;
}

.preset--module--divi-timeline--gill-timeline .et_pb_timeline_item:nth-child(even) .et_pb_timeline_card::before {
  right: 100%;
  border-right-color: #fff;
}

/* ≤767px: line on the left, every card on its right */
@media (max-width: 767px) {
  .preset--module--divi-timeline--gill-timeline .et_pb_timeline_card {
    margin-left: 14px;
  }

  .preset--module--divi-timeline--gill-timeline .et_pb_timeline_item:nth-child(n) .et_pb_timeline_card::before {
    left: auto;
    right: 100%;
    border-left-color: transparent;
    border-right-color: #fff;
  }
}

/* max-width card hugs the line: odd cards (left) push right, even stay left of their half */
@media (min-width: 768px) {
  .preset--module--divi-timeline--gill-timeline .et_pb_timeline_item:nth-child(odd) .et_pb_timeline_card {
    margin-left: auto;
  }
}

/* Geschichte header: headline rotated, standing on the timeline's line */
.gill-timeline-title {
  writing-mode: vertical-rl;
  align-self: center;
}

.gill-timeline-title h1 {
  font-size: clamp(20px, 2.6vw, 38px) !important;
  font-weight: 700;
  line-height: 1.2;
}

@media (max-width: 767px) {
  .gill-timeline-title {
    align-self: flex-start;
    margin-left: 10px;
    margin-top: 11vw;
  }
}

/* header nav: button + burger share one fixed height/font step (like the legacy site), no fluid scaling */
.preset--module--divi-button--gill-button-nav,
.preset--module--divi-icon--gill-icon-nav {
  --gill-nav-h: 40px;
  --gill-ico: 22.4px;
  /* 1.4 × the old 16px */
  box-sizing: border-box;
  height: var(--gill-nav-h) !important;
  min-height: 0 !important;
  padding-block: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-size: 16px !important;
  line-height: 1 !important;
}

@media (max-width: 480px) {

  .preset--module--divi-button--gill-button-nav,
  .preset--module--divi-icon--gill-icon-nav {
    --gill-nav-h: 35px;
    --gill-ico: 19.6px;
    font-size: 14px !important;
  }
}

body #page-container #et-boc .et-l .et_pb_section a.et_pb_button.preset--module--divi-button--gill-button-nav {
  font-size: 16px !important;
}

@media (max-width: 480px) {
  body #page-container #et-boc .et-l .et_pb_section a.et_pb_button.preset--module--divi-button--gill-button-nav {
    font-size: 14px !important;
  }
}

/* open canvas menu: lock page scroll, don't chain scroll out of the menu */
html:has([class*="et-interaction-target-gillmenu"][style*="display: flex"]) {
  overflow: hidden;
}

[class*="et-interaction-target-gillmenu"] {
  overscroll-behavior: contain;
}

/* burger: 3 bars drawn in CSS (glyph hidden), morph into an X while the menu is open; the header sits above the menu so the X stays where the burger was */
.preset--module--divi-icon--gill-icon-nav .et-pb-icon {
  font-size: 0 !important;
  display: block;
  position: relative;
  width: var(--gill-ico);
  height: calc(var(--gill-ico) / 10);
  min-height: 2px;
  background: currentColor;
  transition: background .2s .1s;
}

.preset--module--divi-icon--gill-icon-nav .et-pb-icon::before,
.preset--module--divi-icon--gill-icon-nav .et-pb-icon::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  background: currentColor;
  transition: transform .3s .1s, top .3s .1s;
}

.preset--module--divi-icon--gill-icon-nav .et-pb-icon::before {
  top: calc(var(--gill-ico) / -3.2);
}

.preset--module--divi-icon--gill-icon-nav .et-pb-icon::after {
  top: calc(var(--gill-ico) / 3.2);
}

html:has([class*="et-interaction-target-gillmenu"][style*="display: flex"]) {
  .preset--module--divi-icon--gill-icon-nav .et-pb-icon {
    background: transparent;
    transition-delay: 0s;
  }

  .preset--module--divi-icon--gill-icon-nav .et-pb-icon::before {
    top: 0;
    transform: rotate(45deg);
  }

  .preset--module--divi-icon--gill-icon-nav .et-pb-icon::after {
    top: 0;
    transform: rotate(-45deg);
  }
}

[class*="et-interaction-target-gillmenu"] .et_pb_icon {
  visibility: hidden;
}

/* burger is the close button now; keep its space so the service links stay at the bottom */
/* menu slides down from the top (opening only: Divi closes with display:none) */
@keyframes gill-menu-in {
  from {
    transform: translateY(-100%);
  }
}

[class*="et-interaction-target-gillmenu"] {
  animation: gill-menu-in .45s cubic-bezier(.2, .7, .2, 1);
}

@media (prefers-reduced-motion: reduce) {
  [class*="et-interaction-target-gillmenu"] {
    animation: none;
  }
}

/* Divi gives each TB layout wrapper z-index:2 (a stacking context); drop it for headers so the section z-indexes (nav 1000 < menu 99999 < burger 100000) compete directly */
header.et-l .et_builder_inner_content {
  z-index: auto;
}

/* the burger layer (z 100000) spans the full header width and would cover the nav buttons below it: click-through, only the burger itself takes clicks */
header.et-l .et_pb_section:has(.preset--module--divi-icon--gill-icon-nav) {
  pointer-events: none;
}

header.et-l .preset--module--divi-icon--gill-icon-nav {
  pointer-events: auto;
}

/* underline the link text only, not the » icon */
.preset--module--divi-link--gill-link-underline .et_pb_link_inner {
  text-decoration: none !important;
}

.preset--module--divi-link--gill-link-underline .et_pb_link_text {
  text-decoration: underline;
}

/* line raster: headline cell (heading + Jenny subline + bar) runs on the body text's baselines */
.gill-headline .et_pb_module_header {
  padding-bottom: 0;
}

/* Divi's default 10px under every heading */
.preset--module--divi-text--gill-text-jenny .et_pb_text_inner {
  position: relative;
  top: calc(var(--gvid-gill-fs) * 0.116);
}

/* Jenny sits higher than Sans in the same line box: 0.116em puts its baseline on the line's */
.gill-headline .et_pb_heading+.et_pb_text {
  margin-top: var(--gvid-gill-lh);
}

/* one free line between headline and Jenny subline */

/* footer: text blocks on the line raster (Divi's p padding and table cell padding removed) */
footer .et_pb_text_inner p {
  margin: 0;
  padding: 0;
}

.gill-hours table {
  width: 100%;
  border-collapse: collapse;
}

.gill-hours td {
  padding: 0;
  text-align: right;
  line-height: var(--gvid-gill-lh);
}

.gill-hours td:first-child {
  width: 100%;
}

.gill-hours td+td {
  padding-left: 0.8em;
  white-space: nowrap;
}

.gill-hours td:nth-child(2) {
  padding-left: 0.45em;
}


footer .gill-hours,
footer .gill-foot-sat {
  margin-bottom: var(--gvid-gill-lh) !important;
}

footer .gill-foot-addr p {
  margin-bottom: var(--gvid-gill-lh);
}

footer .gill-foot-addr p:last-child {
  margin-bottom: 0;
}

@media (max-width: 980px) {
  footer .gill-hours {
    padding-right: 18.6%;
  }
}

@media (max-width: 767px) {
  footer .gill-hours {
    padding-right: 0;
  }
}

@media (max-width: 980px) {

  footer .gill-hours,
  footer .gill-foot-addr {
    margin-top: calc(var(--gvid-gill-lh) + var(--gvid-gill-baseline));
  }

  /* stacked: text starts 3 lines under the headline's top */
}

footer .et_pb_text p {
  hyphens: auto;
}

/* TOC (like live): number = 1 line of its own size + 0.1em on top, no Divi heading padding; stays out of the line raster */
.preset--module--divi-heading--gill-heading-toc-number .et_pb_module_header {
  line-height: 1 !important;
  padding: 0.1em 0 0 !important;
}

.preset--module--divi-heading--gill-heading-toc .et_pb_module_header {
  line-height: 1 !important;
  padding: 0 !important;
}

/* Responsive type scale like live gillrath.de (measured 2026-10-06): 1.2vw >1280 · 1.4vw ≤1280 · 2vw ≤980 · 16px 482–600 · 4vw ≤481.
   Divi variables cannot change per breakpoint, so the base token is re-set here. fs-l / fs-s keep the ratios 1.275 / 0.833. */
html:root {
  --gvid-gill-fs: clamp(16px, 1.2vw, 20px);
}

@media (max-width: 1280px) {
  html:root {
    --gvid-gill-fs: max(14px, 1.4vw);
  }
}

@media (max-width: 980px) {
  html:root {
    --gvid-gill-fs: 2vw;
  }
}

@media (max-width: 600px) {
  html:root {
    --gvid-gill-fs: 16px;
  }
}

@media (max-width: 481px) {
  html:root {
    --gvid-gill-fs: 4vw;
  }
}

html:root {
  --gvid-gill-fs-l: calc(var(--gvid-gill-fs) * 1.275);
  --gvid-gill-fs-s: calc(var(--gvid-gill-fs) * 0.833);
}

/* Content width like live: 80 % of the page on tablet, 85 % on phone (desktop: 2/14 ≈ 91 %). Outer tracks = margin − gap so line 2 starts at the margin. */
@media (max-width: 980px) {
  html:root {
    --gvid-gill-grid: 8.6458% repeat(12, 5.4263%) 8.6458%;
  }
}

@media (max-width: 767px) {
  html:root {
    --gvid-gill-grid: 6.146% repeat(12, 5.842%) 6.146%;
  }
}

/* Phone: live keeps the headline block airy (two free lines above the bar, one below) — all multiples of the line pitch */
@media (max-width: 767px) {
  body #page-container .gill-headline .et_pb_divider {
    margin-top: calc(var(--gvid-gill-lh) * 2) !important;
    margin-bottom: var(--gvid-gill-lh) !important;
  }
}

/* TOC labels: long single words ("Vertriebsnetzwerk", "Verarbeitungshinweise") must wrap inside the narrow phone column, not overflow */
.preset--module--divi-link--gill-link-toc-label {
  min-height: calc(var(--gvid-gill-fs) * 1.7 * 3);
  /* reserve 3 lines → all bars align */
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  /* text sits on the bar */
}

.preset--module--divi-link--gill-link-toc-label .et_pb_link_text {
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* Reference single: live shows the side-scrolling image strip at a flat 450px at every width (the web component fills its parent). */
.gillrathShortcodeHorizontalSlideshow {
  height: 450px !important;
}

/* "used in" sections: no linked posts → no empty band (live shows nothing either) */
.gill-par:not(:has(.et_pb_code_inner *)) {
  display: none;
}

/* narrow right-aligned titles break like live ("Maschinen-/zentralstation,") instead of running into the next column */
.preset--module--divi-heading--gill-heading-right .et_pb_module_header {
  hyphens: auto;
  overflow-wrap: break-word;
}

/* headings pasted into body copy (h4–h6 from the old editor) read as bold body text like live, not Divi's 7px h6 */
.et-db #et-boc .et-l .et_pb_text .et_pb_text_inner :is(h1, h2, h3, h4, h5, h6) {
  font-size: inherit;
  line-height: inherit;
  padding: 0;
}

/* Flag rows: row static (no own stacking context), flag above neighbours (z 2) and pulled up by the section's top padding spacer; row max-width stays "none" (never the 1680px cap) */
body #page-container .et_pb_row:has(.preset--module--divi-heading--gill-heading-flag) {
  position: static !important;
  max-width: 1680px !important;
  padding-top: calc(var(--gvid-gill-space-m) * 5) !important;
}

body #page-container .et_pb_column:has(.preset--module--divi-heading--gill-heading-flag) {
  position: absolute !important;
  top: calc(var(--gvid-gill-space-m) * 1) !important;
  left: 0;
  z-index: 3 !important;
}
/* Object page, layout "landscape1": white title box on the photo. Text keeps its grid edge; white extends one gap on both sides
   (box-shadow, so nothing shifts). Class is set on the column in the body layout (htmlAttributes). */
body #page-container .objekt__landscape-headline {
  /* --gvid-gill-gap is 1.3542 % of the full-width row = vw; % is invalid in box-shadow */
  box-shadow: 1.3542vw 0 0 #fff, -1.3542vw 0 0 #fff;
}
