*,
*::before,
*::after {
  box-sizing: border-box;
}

:root {
  --space-fluid: clamp(12px, 4vw, 100px);
  --row-gap: clamp(40px, 4vw, 100px);
}

html {
  -webkit-font-smoothing: antialiased;
}

.wp-block-button {
  min-height: 3.25rem;
}

.wp-block-button a {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 3.25rem;
}

.wp-block-button a:focus {
  outline: 2px solid var(--wp--preset--color--focus-outline);
}

body.theme-digital {
  background-color: var(--wp--preset--color--black-1000);
}

body.theme-digital .wp-block-kolossal-navigation {
  --nav-text: var(--wp--preset--color--white-1000);
  --nav-pill-bg: var(--wp--preset--color--gray-800);
  --nav-pill-hover-bg: var(--wp--preset--color--gray-1000);
  --nav-pill-active-bg: var(--wp--preset--color--white-1000);
  --nav-pill-active-color: var(--wp--preset--color--black-1000);
  --nav-chevron-color: var(--wp--preset--color--white-1000);
  --nav-panel-bg: rgba(24, 24, 24, 0.70);
  --nav-active-dropdown-link-color: #FFF;
}

body.theme-market .wp-block-kolossal-navigation {
  --nav-pill-hover-bg: var(--wp--preset--color--market-tertiary);
}

body.theme-digital img.kolossal-navigation__logo,
body.theme-digital .kolossal-navigation__logo-image {
  filter: brightness(0) invert(1);
}

body.theme-digital .kolossal-navigation__logo-text {
  color: var(--wp--preset--color--white-1000);
}

body.theme-branding {
  background-color: var(--wp--preset--color--white-1000);
  color: var(--wp--preset--color--branding-primary);
}

body.theme-content {
  background-color: var(--wp--preset--color--brand-tertiary);
  color: var(--wp--preset--color--black-1000);
}

body.theme-market {
  background-color: var(--wp--preset--color--market-primary);
  color: var(--wp--preset--color--black-1000);
}

body.theme-market .wp-block-kolossal-navigation {
  --nav-panel-bg: rgba(235, 244, 255, 0.5);
}

body.theme-content .wp-block-kolossal-navigation {
  --nav-pill-active-color: var(--wp--preset--color--brand-tertiary);
  --nav-pill-hover-bg: var(--wp--preset--color--brand-tertiary-300);
  --nav-panel-bg: rgba(255, 235, 250, 0.5);
}

body.theme-landing {
  background-color: var(--wp--preset--color--brand-primary);
  color: var(--wp--preset--color--black-1000);
}

body.theme-landing .wp-block-kolossal-navigation {
  --nav-panel-bg: rgba(0, 184, 101, 0.50);
  --nav-pill-hover-bg: var(--wp--preset--color--brand-secondary-200);
}

body .wp-block-kolossal-navigation {
  --nav-panel-bg: rgba(255, 255, 255, 0.5);
}

.wp-site-blocks {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.wp-site-blocks > main {
  flex: 1;
}

.container {
  width: 100%;
  --container-max-width: 100.25rem;
  max-width: var(--container-max-width);
  margin-inline: auto;
}

.padding-block {
  --space-100-40: clamp(2.5rem, 1.4829rem + 5.0847vw, 6.25rem);
  --space-100-12: clamp(0.75rem, -0.7415rem + 7.4576vw, 6.25rem);

  padding: var(--space-100-40) var(--space-100-12);

  @media (min-width: 768px) {
    padding: var(--space-100-40);
  }
}

.journal-grid .row {
  row-gap: var(--row-gap);
}

.kolossal-case-grid__container .row {
  row-gap: var(--row-gap);
}

.wp-block-kolossal-staff-grid .row {
  row-gap: var(--row-gap);
}

.row {
  --cols: 6;
  --gap: var(--space-fluid);

  display: grid;
  gap: var(--gap);
  grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
}

.row > * {
  min-width: 0;
  margin-block-start: 0;
}

.editor-styles-wrapper .wp-block-group.row > .wp-block {
  margin-block-start: 0;
}

.align-self-start {
  align-self: start;
}

.align-self-center {
  align-self: center;
}

.align-self-end {
  align-self: end;
}

.justify-self-start {
  justify-self: start;
}

.justify-self-center {
  justify-self: center;
}

.justify-self-end {
  justify-self: end;
}

.col-1 {
  grid-column: var(--col-start, auto) / span 1;
}

.col-2 {
  grid-column: var(--col-start, auto) / span 2;
}

.col-3 {
  grid-column: var(--col-start, auto) / span 3;
}

.col-4 {
  grid-column: var(--col-start, auto) / span 4;
}

.col-5 {
  grid-column: var(--col-start, auto) / span 5;
}

.col-6 {
  grid-column: var(--col-start, auto) / span 6;
}

.col-start-1 {
  --col-start: 1;
}

.col-start-2 {
  --col-start: 2;
}

.col-start-3 {
  --col-start: 3;
}

.col-start-4 {
  --col-start: 4;
}

.col-start-5 {
  --col-start: 5;
}

.col-start-6 {
  --col-start: 6;
}

@media (min-width: 440px) {
  .row {
    --cols: 6;
  }

  .col-sm-1 {
    grid-column: var(--col-start-sm, var(--col-start, auto)) / span 1;
  }

  .col-sm-2 {
    grid-column: var(--col-start-sm, var(--col-start, auto)) / span 2;
  }

  .col-sm-3 {
    grid-column: var(--col-start-sm, var(--col-start, auto)) / span 3;
  }

  .col-sm-4 {
    grid-column: var(--col-start-sm, var(--col-start, auto)) / span 4;
  }

  .col-sm-5 {
    grid-column: var(--col-start-sm, var(--col-start, auto)) / span 5;
  }

  .col-sm-6 {
    grid-column: var(--col-start-sm, var(--col-start, auto)) / span 6;
  }

  .col-start-sm-1 {
    --col-start-sm: 1;
  }

  .col-start-sm-2 {
    --col-start-sm: 2;
  }

  .col-start-sm-3 {
    --col-start-sm: 3;
  }

  .col-start-sm-4 {
    --col-start-sm: 4;
  }

  .col-start-sm-5 {
    --col-start-sm: 5;
  }

  .col-start-sm-6 {
    --col-start-sm: 6;
  }
}

@media (min-width: 768px) {
  .row {
    --cols: 8;
  }

  .col-md-1 {
    grid-column: var(--col-start-md, var(--col-start, auto)) / span 1;
  }

  .col-md-2 {
    grid-column: var(--col-start-md, var(--col-start, auto)) / span 2;
  }

  .col-md-3 {
    grid-column: var(--col-start-md, var(--col-start, auto)) / span 3;
  }

  .col-md-4 {
    grid-column: var(--col-start-md, var(--col-start, auto)) / span 4;
  }

  .col-md-5 {
    grid-column: var(--col-start-md, var(--col-start, auto)) / span 5;
  }

  .col-md-6 {
    grid-column: var(--col-start-md, var(--col-start, auto)) / span 6;
  }

  .col-md-7 {
    grid-column: var(--col-start-md, var(--col-start, auto)) / span 7;
  }

  .col-md-8 {
    grid-column: var(--col-start-md, var(--col-start, auto)) / span 8;
  }

  .col-start-md-1 {
    --col-start-md: 1;
  }

  .col-start-md-2 {
    --col-start-md: 2;
  }

  .col-start-md-3 {
    --col-start-md: 3;
  }

  .col-start-md-4 {
    --col-start-md: 4;
  }

  .col-start-md-5 {
    --col-start-md: 5;
  }

  .col-start-md-6 {
    --col-start-md: 6;
  }

  .col-start-md-7 {
    --col-start-md: 7;
  }

  .col-start-md-8 {
    --col-start-md: 8;
  }
}

@media (min-width: 1280px) {
  .row {
    --cols: 12;
    --gap: 80px;
  }

  .col-lg-1 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 1;
  }

  .col-lg-2 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 2;
  }

  .col-lg-3 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 3;
  }

  .col-lg-4 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 4;
  }

  .col-lg-5 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 5;
  }

  .col-lg-6 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 6;
  }

  .col-lg-7 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 7;
  }

  .col-lg-8 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 8;
  }

  .col-lg-9 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 9;
  }

  .col-lg-10 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 10;
  }

  .col-lg-11 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 11;
  }

  .col-lg-12 {
    grid-column: var(--col-start-lg, var(--col-start-md, var(--col-start, auto))) / span 12;
  }

  .col-start-lg-1 {
    --col-start-lg: 1;
  }

  .col-start-lg-2 {
    --col-start-lg: 2;
  }

  .col-start-lg-3 {
    --col-start-lg: 3;
  }

  .col-start-lg-4 {
    --col-start-lg: 4;
  }

  .col-start-lg-5 {
    --col-start-lg: 5;
  }

  .col-start-lg-6 {
    --col-start-lg: 6;
  }

  .col-start-lg-7 {
    --col-start-lg: 7;
  }

  .col-start-lg-8 {
    --col-start-lg: 8;
  }

  .col-start-lg-9 {
    --col-start-lg: 9;
  }

  .col-start-lg-10 {
    --col-start-lg: 10;
  }

  .col-start-lg-11 {
    --col-start-lg: 11;
  }

  .col-start-lg-12 {
    --col-start-lg: 12;
  }
}

@media (min-width: 1920px) {
  .row {
    --gap: 100px;
  }
}

.debug .row {
  position: relative;
}

.debug .row::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 999;

  --col-width: calc(
    (100% - (var(--cols) - 1) * var(--gap)) / var(--cols)
  );

  background-image: repeating-linear-gradient(
    to right,
    rgb(255 105 180 / 0.22) 0,
    rgb(255 105 180 / 0.22) var(--col-width),
    transparent var(--col-width),
    transparent calc(var(--col-width) + var(--gap))
  );
}

/* Header group is not a content section; avoid theme variation white fill. */
.wp-block-group.site-header {
  background-color: transparent;
  pointer-events: none;
}

.wp-block-group.site-footer .wp-block-site-title a {
  color: inherit;
  text-decoration: none;
}

.case-heading-hero {
  padding-top: clamp(5rem, -1.25rem + 20vw, 11.25rem);
  padding-bottom: var(--wp--preset--spacing--block-vertical-padding);
}

.case-client {
  margin-top: var(--wp--preset--spacing--24);

  @media (min-width: 439px) {
    margin-top: var(--wp--preset--spacing--40);
  }
}

.cta-container {
  gap: 0;
}

.cta-pattern {
  background-color: var(--wp--preset--color--brand-secondary-200);
}

.cta-pattern.is-style-theme-branding {
  background-color: var(--wp--preset--color--gray-100);
}

.cta-pattern.is-style-theme-digital {
  background-color: var(--wp--preset--color--gray-900);
}

.cta-pattern.is-style-theme-content {
  background-color: #FFF5FC;
}

.cta-pattern.is-style-theme-landing {
  background-color: var(--wp--preset--color--brand-primary-500);
}

.cta-pattern.is-style-theme-market {
  background-color: var(--wp--preset--color--market-secondary-200);
}

.cta-heading {
  padding-bottom: clamp(1.5rem, 0.596rem + 1.882vw, 2rem);
}

.cta-paragraph {
  padding-bottom: clamp(1.5rem, 0.017rem + 3.089vi, 3.5rem);
}
/* Image Gallery: keep custom media blocks constrained; only sync their internal grid gap with the pattern row. */
.image-gallery-section .kolossal-image__grid {
  --kolossal-image-gap: var(--gap);
}

.image-gallery-section .kolossal-image-pair__grid {
  --kolossal-image-pair-gap: var(--gap);
}

.image-gallery-section .wp-block-embed {
  margin: 0;
  min-width: 0;
  width: 100%;
  max-width: 1604px;
}

.image-gallery-section .wp-block-embed__wrapper {
  position: relative;
  aspect-ratio: 16 / 9;
  width: 100%;
}

.image-gallery-section .wp-block-embed__wrapper iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Services / Departments: keep content grouped on 8-col layouts, split on 12-col layouts. */
.is-style-theme-digital {
  --wp--custom--border--subtle: 1px solid var(--wp--preset--color--white-400);
  --wp--custom--border--strong: 1px solid var(--wp--preset--color--white-1000);
}

.services-departments {
  --services-departments-hover-bg: color-mix(
    in srgb,
    var(--wp--preset--color--black-1000) 5%,
    transparent
  );
}

body.theme-digital .services-departments,
.services-departments.is-style-theme-digital,
.is-style-theme-digital .services-departments {
  --services-departments-hover-bg: color-mix(
    in srgb,
    var(--wp--preset--color--white-1000) 20%,
    transparent
  );
}

.services-departments__rows {
  position: relative;
}

.services-departments__hover-bg {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  background: var(--services-departments-hover-bg);
  backdrop-filter: blur(0.3125rem);
  opacity: 0;
  pointer-events: none;
  transition:
    top 0.35s cubic-bezier(0.3, 0.4, 0.25, 1),
    left 0.35s cubic-bezier(0.3, 0.4, 0.25, 1),
    width 0.35s cubic-bezier(0.3, 0.4, 0.25, 1),
    height 0.35s cubic-bezier(0.3, 0.4, 0.25, 1),
    opacity 0.2s linear;
}

.services-departments__hover-bg.is-visible {
  opacity: 1;
}

.services-departments__item {
  position: relative;
  z-index: 1;
  border-top: var(--wp--custom--border--strong);
  align-items: center;
  padding-left: 1rem;
  padding-right: 1rem;
}

.services-departments__rows > :last-child .services-departments__item {
  border-bottom: var(--wp--custom--border--strong);
}

.services-departments .wp-block-kolossal-link-wrapper {
  display: block;
  margin: 0;
}

.services-departments .kolossal-link-wrapper__link,
.services-departments .kolossal-link-wrapper__content {
  display: block;
  color: inherit;
  text-decoration: none;
}

/* Department rows use the snap bg + arrow, not the cursor box. */
.services-departments .kolossal-cursor-box {
  display: none;
}

.services-departments__arrow {
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  /* Full glyph is 78×48 → 4.875rem × 3rem; clip the shaft until hover. */
  width: 3rem;
  height: 3rem;
  color: currentColor;
  pointer-events: none;
  transform: translateY(-0%);
  transition: width 0.35s cubic-bezier(0.3, 0.4, 0.25, 1);
  margin-left: 0;

  @media (min-width: 768px) {
    margin-left: 4.75rem;
  }
}

.services-departments__item:hover .services-departments__arrow {
  width: 4.875rem;
}

.services-departments__arrow svg {
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  height: 100%;
  width: auto;
}

@media (prefers-reduced-motion: reduce) {
  .services-departments__hover-bg {
    transition: opacity 0.2s linear;
  }

  .services-departments__arrow {
    transition: none;
  }
}

.services-departments__content {
  display: block;
}

.services-departments__content > * {
  margin-block-start: 0;
}

.services-departments__content > * + * {
  margin-block-start: var(--wp--preset--spacing--16);
}

@media (min-width: 1280px) {
  .services-departments__content {
    display: grid;
    gap: var(--gap);
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }

  .services-departments__content > * + * {
    margin-block-start: 0;
  }

  /* .services-departments__heading {
    grid-column: span 3;
  }

  .services-departments__body {
    grid-column: span 7;
  } */
}

/* Services accordion pattern. */
.services-accordion__items {
  border-top: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
}

.services-accordion p {
  font-size: var(--wp--preset--font-size--paragraph);
}

.services-accordion .case-card-title {
  font-size: var(--wp--preset--font-size--heading-m);
}

.services-accordion__item {
  border-top: 1px solid currentColor;
  margin-block-start: 0;
  padding: 2rem 1rem;
}

.services-accordion__item:first-child {
  border-top: 0;
}

.services-accordion__item summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--wp--preset--font-size--heading-l);
  font-weight: var(--wp--custom--font-weight--semibold);
  justify-content: space-between;
  letter-spacing: 0em;
  line-height: 1.3;
  list-style: none;
  padding-inline-end: calc(48px + var(--wp--preset--spacing--24));
  position: relative;
}

.services-accordion__item summary::-webkit-details-marker {
  display: none;
}

.services-accordion__item summary::before,
.services-accordion__item summary::after {
  background-color: currentColor;
  content: "";
  height: 48px;
  inset-inline-end: 0;
  mask: url("../svg/service-minus.svg") center / contain no-repeat;
  -webkit-mask: url("../svg/service-minus.svg") center / contain no-repeat;
  margin-top: -24px;
  pointer-events: none;
  position: absolute;
  top: 50%;
  transition: transform 0.4s cubic-bezier(0.3, 0.4, 0.25, 1);
  width: 28px;
}

.services-accordion__item summary::before {
  transform: rotate(-90deg);
}

.services-accordion__item summary::after {
  transform: rotate(-180deg);
}

.services-accordion__item.is-open summary::before {
  transform: rotate(180deg);
}

.services-accordion__item.is-open summary::after {
  transform: rotate(180deg);
}

.services-accordion__content {
  margin-block-start: 4rem;
  row-gap: 0;
}

.services-accordion__content::last-child,
.services-accordion__related::last-child {
  margin-block-end: 3.5rem;
  margin-block-start: 3.5rem;
}

:root :where(.is-layout-flow) > :first-child.services-accordion__content {
  margin-block-start: 4rem;
}

:root :where(.is-layout-flow) > :last-child.services-accordion__related {
  margin-block-start: 3.5rem;
  margin-block-end: 1.5rem;
}

.services-accordion__intro {
  margin-block-start: 0;
}

.services-accordion__service-list {
  --cols: 6;
  row-gap: 0;
}

.services-accordion__service {
  margin-block-start: 0;
  margin-block-end: 0.5rem;
  padding: 0.5rem 0;
}

@media (min-width: 768px) {
  .services-accordion__service-list {
    --cols: 4;
  }
}

@media (min-width: 1280px) {
  .services-accordion__service-list {
    --cols: 6;
  }
}


@media (prefers-reduced-motion: reduce) {
  .services-accordion__item summary::before,
  .services-accordion__item summary::after {
    transition: none;
  }
}