/*
Theme Name:   Boulton Creative
Author:       Eric Michel
Template:     emma
Version:      1.64
Text Domain:  bc2024
*/
button,
.wp-block-button__link {
  border-radius: 4px;
}

.h-100 {
  height: 100% !important;
}

@media screen and (min-width: 781px) {
  .force-image-height .wp-block-column:has(img) {
    position: relative;
    align-self: stretch;
  }
  .force-image-height .wp-block-column:has(img) .wp-block-cover {
    height: 100%;
    width: 100%;
  }
  .force-image-height .wp-block-column:has(img) .wp-block-cover img {
    height: 100%;
  }
}
/* Force column wrapping at 1045px for conference room photo columns */
@media (max-width: 1045px) {
  .columns-force-wrap.wp-block-columns {
    flex-wrap: wrap !important;
  }
  .columns-force-wrap .wp-block-column {
    flex-basis: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media screen and (max-width: 781px) {
  .increase-pb-mobile {
    padding-bottom: 7rem !important;
  }
}

.footer-logo {
  margin-top: -96px !important;
}

.footer-dividers {
  gap: 18px;
}
@media screen and (min-width: 360px) {
  .footer-dividers {
    display: block !important;
  }
  .footer-dividers p {
    padding-bottom: 1rem;
  }
}
@media screen and (min-width: 540px) {
  .footer-dividers {
    display: flex !important;
  }
  .footer-dividers p {
    padding-bottom: 0;
  }
  .footer-dividers p:nth-child(-n+3) {
    border-right: 2px solid white;
    padding-right: 1rem;
  }
}

.page-hero {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  min-height: unset !important;
}
@media screen and (max-width: 999px) {
  .page-hero img {
    position: static !important;
  }
}

@media screen and (min-width: 1000px) {
  .page-hero-container {
    display: flex;
    flex-direction: column;
    min-height: calc(100svh - var(--admin-bar-height));
  }
  .page-hero {
    flex-basis: 0;
    flex-grow: 1;
  }
}
.columns-at-1000 > .wp-block-group {
  flex-basis: 100%;
}

@media screen and (min-width: 1000px) {
  .columns-at-1000 {
    flex-wrap: nowrap;
  }
}
.columns-at-1000 ul {
  list-style-type: none;
  padding-left: 0;
}
.columns-at-1000 ul li {
  text-align: center;
}

@media screen and (min-width: 1100px) {
  .home-hero img {
    height: calc(100svh - var(--admin-bar-height)) !important;
  }
}
@media screen and (max-width: 999px) {
  .custom-logo-link {
    max-width: 200px;
  }
}
.home-hero {
  position: relative;
}

.home-hero-inner {
  position: relative;
}
.home-hero-inner::before {
  content: "";
  position: absolute;
  top: 63%;
  left: 31%;
  transform: translate(-100%, -100%);
  width: 0px;
  height: 0px;
  border-bottom: 24px solid rgba(255, 255, 255, 0.75);
  border-left: 17px solid transparent;
  z-index: 1;
}
@media screen and (min-width: 800px) {
  .home-hero-inner::before {
    border-width: 0 0 48px 35px;
  }
}

.wp-block-cover .wp-block-cover__inner-container:has(.home-hero-speech-bubble) {
  position: unset;
}

.home-hero-speech-bubble {
  position: absolute !important;
  top: 63%;
  left: 12%;
  padding: 1rem;
  background-color: rgba(255, 255, 255, 0.75);
  width: max-content !important;
  border-radius: 15px;
}
@media screen and (min-width: 800px) {
  .home-hero-speech-bubble {
    font-size: var(--wp--preset--font-size--large) !important;
    padding: 2rem;
    border-radius: 30px;
  }
}
@media screen and (min-width: 1400px) {
  .home-hero-speech-bubble {
    left: 32%;
    transform: translateX(-85%);
  }
}
@media screen and (max-width: 500px) {
  .home-hero-speech-bubble {
    font-size: var(--wp--preset--font-size--small) !important;
    padding: 0.5rem;
    border-radius: 7px;
  }
}

.home-hero-footer-content {
  row-gap: 0 !important;
}

.service-list {
  row-gap: 0 !important;
  z-index: 1;
}

@media screen and (max-width: 1099px) {
  .home-hero-footer-content,
  .since-1991 {
    width: 100% !important;
  }
  .service-list {
    padding: 1rem;
    background-color: var(--wp--preset--color--gray-600);
    color: white;
    width: 100%;
    max-width: 100%;
  }
  .service-list > * {
    width: 100%;
  }
}
@media screen and (min-width: 1100px) {
  .home-hero-footer {
    position: absolute !important;
    bottom: 0;
    left: 0;
    /* background-color: rgba( 0, 0, 0, 0.6 ); */
    background-color: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(3px);
    color: white;
  }
  .service-list > *:not(:first-child) {
    position: relative;
  }
  .service-list > *:not(:first-child)::before {
    content: "";
    position: absolute;
    left: -2rem;
    top: 50%;
    height: 100%;
    width: 1px;
    transform: translateY(-50%);
    background-color: currentColor;
  }
}
.w-max-content {
  width: max-content !important;
}

.container {
  container-type: inline-size;
}

.two-column-list {
  padding-left: 0;
}
.two-column-list > li {
  margin-left: 1.2rem;
}

@container ( min-width: 450px ) {
  .two-column-list {
    column-count: 2;
  }
  .two-column-list > * {
    break-inside: avoid;
  }
}
.mw-540 {
  max-width: 540px !important;
}

.overflow-x-hidden {
  overflow-x: hidden;
}

@media screen and (max-width: 1139px) {
  .service-row {
    display: block !important;
  }
  .service-image {
    margin-left: auto;
    margin-right: auto;
  }
  .service-quote-container {
    margin-top: -2rem !important;
  }
  body .is-layout-constrained > .service-name {
    width: calc(100% + var(--layout-spacer-x) * 2);
    max-width: unset;
    margin-left: calc(var(--layout-spacer-x) * -1) !important;
    margin-right: calc(var(--layout-spacer-x) * -1) !important;
  }
  .service-name {
    position: relative;
    padding: 1rem;
    text-align: center;
  }
  .service-name > hr:first-child {
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
  }
  .service-name > hr:last-child {
    display: none;
  }
  .service-name a {
    color: var(--wp--preset--color--white);
  }
  .service-description {
    background-color: transparent !important;
    padding: 0 !important;
  }
}
.service-description-arrow {
  display: none;
  position: relative;
  z-index: 1;
}

.service-image {
  max-width: 300px !important;
}

.service-quote-container {
  position: relative;
  z-index: 1;
}
.service-quote-container:after {
  content: "";
  position: absolute;
  left: 80%;
  top: -24px;
  background-color: var(--wp--preset--color--gray-200);
  border-radius: 50%;
  width: 30px;
  height: 30px;
  z-index: -1;
  transform: scale(1);
  filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.4));
}
.service-quote-container::before {
  content: "";
  position: absolute;
  left: calc(80% - 12px);
  top: -36px;
  background-color: var(--wp--preset--color--gray-200);
  border-radius: 50%;
  width: 24px;
  height: 24px;
  z-index: -1;
  transform: scale(1);
  filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.4));
}

.service-quote {
  --wp--style--block-gap: 1rem;
  --layout-spacer-x: 1rem;
  border-radius: 15px;
  filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.4));
}

.service-name > h3 {
  position: relative;
  z-index: 1;
}
.service-name a {
  text-decoration: none;
}
.service-name a:hover {
  text-decoration: underline;
}
.service-name > hr {
  position: absolute;
  max-width: unset;
}

.service-description-container {
  background-color: transparent !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.service-description-container > * {
  width: 100% !important;
}

@media screen and (min-width: 1140px) {
  .service-row {
    position: relative;
    display: flex;
    column-gap: 2rem;
    align-items: center;
  }
  .service-row > * {
    margin-top: 0 !important;
  }
  .service-quote-container {
    position: absolute !important;
    top: 0;
    left: calc(100% - 30px);
    width: 230px;
    transform: translateY(-80%);
  }
  .service-quote-container::after {
    left: -15px;
    bottom: -15px;
    top: unset;
  }
  .service-quote-container::before {
    left: -27px;
    bottom: -27px;
    top: unset;
  }
  .service-image {
    position: relative;
    max-width: 250px !important;
    order: -1;
  }
  .service-image figure {
    position: relative;
    margin-top: 0;
    z-index: 1;
  }
  .service-name {
    position: relative;
    margin-right: -2rem;
    flex-grow: 1;
    white-space: nowrap;
  }
  .service-name > hr:first-child {
    top: -2rem;
    left: -4rem;
    right: -4rem;
  }
  .service-name > hr:last-child {
    bottom: -2rem;
    left: -4rem;
    right: -4rem;
  }
  .service-description-container {
    position: relative;
    min-height: 450px;
    display: flex;
    align-items: center;
  }
  .service-description-container::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100%;
    background-color: var(--bg-color);
    /* z-index: -1; */
  }
  .service-description-container .service-description-arrow {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100px !important;
    padding: 0 !important;
    margin: 0 !important;
    background-color: transparent !important;
    z-index: 1;
  }
  .service-description-container .service-description-arrow::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    clip-path: polygon(30px 0, 100% 50%, 30px 100%, 0% 100%, calc(100% - 30px) 50%, 0 0);
  }
  .service-description-container .service-description-arrow.has-primary-background-color:before {
    background-color: var(--wp--preset--color--primary);
  }
  .service-description-container .service-description-arrow.has-secondary-background-color:before {
    background-color: var(--wp--preset--color--secondary);
  }
  .service-description-container .service-description-arrow.has-tertiary-background-color:before {
    background-color: var(--wp--preset--color--tertiary);
  }
  .service-description-container .service-description-arrow.has-quaternary-background-color:before {
    background-color: var(--wp--preset--color--quaternary);
  }
  .service-description {
    position: relative;
    padding-left: 100px;
    z-index: 1;
  }
}
/* Service Animation Styles */
.service-quote-container:not(.wp-block) .service-quote {
  transform: scale(0);
}
.service-quote-container:not(.wp-block):after {
  transform: scale(0);
  transition: transform 0.2s ease-out;
  transition-delay: 0.1s;
}
.service-quote-container:not(.wp-block):before {
  transform: scale(0);
  transition: transform 0.2s ease-out;
}

@media screen and (max-width: 1139px) {
  .service-image.active .service-quote-container .service-quote {
    animation: bounce-in 0.5s;
    animation-fill-mode: forwards;
    animation-delay: 0.25s;
  }
  .service-image.active .service-quote-container:before {
    transform: scale(1);
  }
  .service-image.active .service-quote-container:after {
    transform: scale(1);
  }
}
@media screen and (min-width: 1140px) {
  .service-row .service-name {
    transition: all 0.2s ease-in;
  }
  .service-row .service-name h3 {
    transition: opacity 0.2s ease-in;
  }
  .service-row .service-description-arrow {
    transition: filter 0.2 ease-in;
    transition-delay: 0.1s;
  }
  .service-row .service-description-container:after {
    transition: clip-path 0.3s ease-in;
    transition-delay: 0.1s;
  }
  .service-row .service-description {
    transition: opacity 0.3s ease-in;
    transition-delay: 0.3s;
  }
  .service-row .service-quote-container:after {
    transition-delay: 0.7s;
  }
  .service-row .service-quote-container:before {
    transition-delay: 0.6s;
  }
  .service-row:not(.wp-block) .service-quote,
  .service-row:not(.wp-block) .service-name h3,
  .service-row:not(.wp-block) .service-description {
    opacity: 0;
  }
  .service-row:not(.wp-block) .service-description-arrow {
    filter: drop-shadow(10px 0px 15px rgba(0, 0, 0, 0));
  }
  .service-row:not(.wp-block) .service-description-container:after {
    clip-path: polygon(0 0, 0 0, 70px 50%, 0 100%, 0 100%, 70px 50%);
  }
  .service-row:not(.wp-block) .service-name {
    min-width: 0;
    max-width: 0;
  }
  .service-row:not(.wp-block).active .service-quote,
  .service-row:not(.wp-block).active .service-name h3,
  .service-row:not(.wp-block).active .service-description {
    opacity: 1;
  }
  .service-row:not(.wp-block).active .service-description-arrow {
    filter: drop-shadow(10px 0px 15px rgba(0, 0, 0, 0.5));
  }
  .service-row:not(.wp-block).active .service-description-container:after {
    clip-path: polygon(0 0, 100% 0, 100% 50%, 100% 100%, 0 100%, 70px 50%);
  }
  .service-row:not(.wp-block).active .service-name {
    min-width: 220px;
    max-width: 325px;
  }
  .service-row:not(.wp-block).active .service-quote-container .service-quote {
    animation: bounce-in 0.5s;
    animation-fill-mode: forwards;
    animation-delay: 0.85s;
  }
  .service-row:not(.wp-block).active .service-quote-container:before {
    transform: scale(1);
  }
  .service-row:not(.wp-block).active .service-quote-container:after {
    transform: scale(1);
  }
}
@keyframes bounce-in {
  25% {
    transform: scale(1);
  }
  40% {
    transform: scale(0.97, 1.03);
  }
  60% {
    transform: scale(1.03, 0.97);
  }
  100% {
    transform: scale(1);
  }
}
@media screen and (min-width: 782px) {
  .services-topic {
    display: flex;
  }
  .services-topic > .wp-block-group:first-child {
    min-height: 200px;
    display: flex;
    align-items: center;
  }
  .services-topic > .wp-block-group:nth-child(2) {
    align-self: center;
  }
  .services-topic .service-topic__name {
    justify-content: center;
    clip-path: polygon(calc(100% - 40px) 0, 100% 50%, calc(100% - 40px) 100%, 0 100%, 0 0);
    margin: -1px;
    max-width: 320px !important;
    padding-right: 10px;
  }
}

.columns-cta-circles {
  column-gap: 0;
}
.columns-cta-circles h2 {
  margin: 0 auto 2rem;
  background-color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 0.4rem solid var(--wp--preset--color--tertiary);
  border-radius: 50%;
  max-width: 220px;
  aspect-ratio: 1;
}
.columns-cta-circles h2 a {
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--wp--preset--color--tertiary);
  text-decoration: none;
  transition: all 350ms ease-in-out;
  border-radius: 50%;
  width: calc(100% - 20px);
  aspect-ratio: 1;
}
.columns-cta-circles h2 a:hover {
  background-color: rgba(68, 68, 68, 0.5);
  color: white !important;
  text-decoration: none;
}
@media screen and (min-width: 781px) and (max-width: 1100px) {
  .columns-cta-circles {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    row-gap: 0;
  }
  .columns-cta-circles > .wp-block-column:nth-child(3) > .wp-block-group {
    background-color: var(--wp--preset--color--gray-400) !important;
  }
  .columns-cta-circles > .wp-block-column:nth-child(4) > .wp-block-group {
    background-color: var(--wp--preset--color--gray-200) !important;
  }
}
@media screen and (max-width: 781px) {
  .columns-cta-circles {
    display: grid !important;
    grid-template-columns: 1fr;
    row-gap: 0;
  }
  .columns-cta-circles .wp-block-column:last-child .wp-block-group {
    margin-bottom: 2rem;
  }
}

.hover-image {
  position: relative;
}
.hover-image .hover {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
  transition: all 500ms ease-in-out;
  z-index: 2;
  pointer-events: none;
}
.hover-image .hover-bio {
  position: absolute;
  opacity: 0;
  bottom: 100% !important;
  padding: 1rem;
  background-color: rgba(0, 0, 0, 0.5);
  color: white;
  width: 100%;
  text-align: left;
  font-size: 1rem;
  transition: all 250ms ease-in-out;
}

.hover-image:hover .hover,
.hover-image:active .hover {
  opacity: 1;
}

.hover-image:hover .hover-bio,
.hover-image:active .hover-bio {
  opacity: 1;
  z-index: 3;
}

.clients-columns {
  column-gap: 3rem !important;
  columns: 20rem auto;
}
.clients-columns .wp-block-group {
  break-inside: avoid;
}

.logos-archive-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: 2rem;
  margin-bottom: 2rem;
}
@media screen and (max-width: 1024px) {
  .logos-archive-grid {
    grid-template-columns: repeat(3, 1fr);
    column-gap: 1.5rem;
  }
}
@media screen and (max-width: 768px) {
  .logos-archive-grid {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 1rem;
  }
}
@media screen and (max-width: 480px) {
  .logos-archive-grid {
    grid-template-columns: 1fr;
    column-gap: 1rem;
  }
}

.web-print-archive-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin: 2rem auto;
  grid-gap: 2rem;
}
@media screen and (max-width: 768px) {
  .web-print-archive-grid {
    grid-template-columns: 1fr;
    grid-gap: 1.5rem;
  }
}
@media screen and (max-width: 480px) {
  .web-print-archive-grid {
    grid-gap: 1rem;
  }
}

.logos-archive-grid img,
.web-print-archive-grid img,
.hover-link img {
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
  object-fit: cover;
}

.work-type-nav .current-menu-item a {
  font-size: 2rem;
  text-decoration: underline;
  color: var(--wp--preset--color--tertiary) !important;
}

.work-type-nav .wp-block-navigation-item {
  width: 100px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.hover-link {
  position: relative;
}
.hover-link .hoverlink {
  position: absolute;
  margin-top: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 350ms ease-in-out;
  background-color: #242424;
}

/* Only show hover effect when hoverlink has content */
.hover-link:hover .hoverlink:has(.link-wrapper),
.hover-link:active .hoverlink:has(.link-wrapper) {
  opacity: 1;
  background-color: rgba(0, 0, 0, 0.5);
}

/* Work Type Navigation */
.old-work-type-nav {
  display: flex;
  justify-content: space-around;
  margin: 0 auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
.old-work-type-nav a {
  display: block;
  /* padding: 5px 20px; */
  color: var(--wp--preset--color--black);
  font-size: 1.3rem;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 350ms ease-in-out;
}
.old-work-type-nav a:hover {
  text-decoration: none;
  color: var(--wp--preset--color--quaternary);
}
@media screen and (max-width: 480px) {
  .old-work-type-nav {
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
  }
  .old-work-type-nav a {
    text-align: center;
    padding: 0.5rem 0.75rem;
  }
}

.work-type-page-title {
  display: inline-block;
  margin-bottom: 2rem;
  padding-bottom: 0.75rem;
  border-bottom: 3px solid var(--wp--preset--color--tertiary);
  color: var(--wp--preset--color--tertiary);
  font-size: 2rem;
}

.work-type-link-before {
  position: relative;
  padding-left: 3rem;
  cursor: pointer;
}
.work-type-link-before a {
  padding-left: 3rem;
  margin-left: -3rem;
}
.work-type-link-before::before {
  content: "";
  position: absolute;
  left: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2rem;
  height: 2rem;
  background-color: var(--wp--preset--color--black);
  mask-image: url("../emma/assets/icons/arrow-left-alt2.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-image: url("../emma/assets/icons/arrow-left-alt2.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  transition: background-color 350ms ease-in-out, transform 350ms ease-in-out;
}
.work-type-link-before:hover::before {
  background-color: var(--wp--preset--color--quaternary);
  transform: translateY(-50%) translateX(-20px);
}
.work-type-link-before:hover a {
  color: var(--wp--preset--color--quaternary);
}

.work-type-link-after {
  position: relative;
  padding-right: 3rem;
  cursor: pointer;
}
.work-type-link-after a {
  padding-right: 3rem;
  margin-right: -3rem;
}
.work-type-link-after::after {
  content: "";
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2rem;
  height: 2rem;
  background-color: var(--wp--preset--color--black);
  mask-image: url("../emma/assets/icons/arrow-right-alt2.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-image: url("../emma/assets/icons/arrow-right-alt2.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  transition: background-color 350ms ease-in-out, transform 350ms ease-in-out;
}
.work-type-link-after:hover::after {
  background-color: var(--wp--preset--color--quaternary);
  transform: translateY(-50%) translateX(20px);
}
.work-type-link-after:hover a {
  color: var(--wp--preset--color--quaternary);
}

.flyout-menu li {
  border-bottom: 1px solid var(--wp--preset--color--gray-200) !important;
}
.flyout-menu li:last-child {
  border-bottom: none !important;
}
.flyout-menu summary,
.flyout-menu a {
  color: var(--wp--preset--color--boulton-gray) !important;
}

body:has(#gform_1) .wp-element-button {
  background-color: var(--wp--preset--color--primary) !important;
}
