.preloader{display:flex!important;z-index:100000}
.preloader.ua-done{display:none!important;pointer-events:none}
.loader-text span{display:inline-block;opacity:0;transform:translateY(12px)}
.menu-logo img,.footer-brand img,a.w-nav-brand img,.navbar img{width:auto!important;max-width:143px;height:auto!important;object-fit:contain!important}
.footer-brand img{max-width:170px}
/* UA_LOCAL_INTERACTIONS_V1 */

/* About scroll reveals */
.ua-reveal{
  opacity:0;
  transform:translate3d(0,1.4rem,0);
  transition:opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--ua-delay,0s);
  will-change:opacity,transform;
}
.ua-reveal.ua-in{
  opacity:1;
  transform:translate3d(0,0,0);
}

/* Specialties cursor-follow preview */
/* Keep Webflow grid: row1 = image area, row2 = titles at bottom */
.service-hero-item{
  cursor:pointer;
}
.service-hero-item .ua-follow-top{
  /* stay IN FLOW as the 1fr row so titles remain on row 2 / bottom */
  position:relative !important;
  inset:auto !important;
  width:100%;
  height:100%;
  min-height:0;
  display:flex !important;
  justify-content:center;
  align-items:flex-start;
  z-index:20;
  pointer-events:none !important;
  padding:.25rem .875rem .625rem;
}
.service-hero-item .ua-follow-block{
  position:absolute !important;
  left:0;
  top:0;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  display:block !important;
  pointer-events:none !important;
}
.service-hero-item .ua-follow-img{
  position:absolute !important;
  left:0;
  top:0;
  width:min(240px,72%) !important;
  border-radius:.625rem;
  overflow:hidden;
  box-shadow:0 18px 50px rgba(0,0,0,.18);
  z-index:30;
  pointer-events:none !important;
}
.service-hero-item .ua-follow-img .image-3{
  width:100%;
  height:auto;
  display:block;
  object-fit:cover;
  aspect-ratio:3/4;
}
/* Titles locked to the bottom row — do not pull them up */
.service-hero-item .div-block-18{
  position:relative;
  z-index:5;
  align-self:end;
  margin-top:auto;
}
.service-hero-item .vertical-text{
  position:relative;
  z-index:5;
  margin-bottom:2rem;
}

/* Mobile follow-img width is set in the ≤991px specialties stack below */

/* ===== UA_RESPONSIVE_PERF_POLISH_V1 ===== */

/* Global overflow — keep light; do NOT blanket max-width on all img/video (breaks Webflow fills) */
html {
  overflow-x: clip;
}
body {
  overflow-x: clip;
  max-width: 100%;
}
/* Only constrain media inside flowing content columns, not hero/fills */
.rich-text-block img,
.w-richtext img,
.member-bio-wrapper img:not(.image-6) {
  max-width: 100%;
  height: auto;
}

/* Touch-friendly nav chrome (IX2/dropdown menu still drives open state) */
@media (max-width: 991px) {
  .navbar-toggle,
  .navbar-button,
  .w-nav-button {
    min-width: 2.75rem;
    min-height: 2.75rem;
  }
  .navbar-button {
    padding-left: 1.1rem;
    padding-right: 1.1rem;
    box-sizing: border-box;
  }
  .menu-logo img,
  a.w-nav-brand img {
    max-width: min(143px, 38vw);
  }
}

/* Home hero title — match live Webflow sizes (2em / 3em / 5em) */
.hero-heading-reveal {
  max-width: 100%;
  box-sizing: border-box;
  overflow-wrap: normal;
  hyphens: none;
}
@media (max-width: 479px) {
  .hero-heading-reveal {
    font-size: 2em !important; /* live phone size (~32px) */
    letter-spacing: 1.5px;
    line-height: 130%;
    text-align: center;
    width: auto;
    max-width: none;
    padding-inline: 0.5rem;
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  .hero-heading-reveal {
    font-size: 3em !important;
    letter-spacing: 1.5px;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .hero-heading-reveal {
    font-size: 5em !important;
  }
}

/*
 * Specialties hub — mobile/tablet: full-width horizontal rows
 * (image left + upright title). Must fully undo desktop cursor-follow
 * absolute positioning or thumbs collapse into a skinny left strip.
 */
@media (max-width: 991px) {
  .collection-list-3 {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    grid-auto-flow: row !important;
    grid-auto-columns: unset !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .service-hero-block {
    overflow: visible !important;
    min-height: 0 !important;
  }

  .service-hero-item {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 1.25rem !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    width: 100% !important;
    max-width: 100% !important;
    grid-template-rows: none !important;
    grid-template-columns: none !important;
    place-content: unset !important;
    place-items: unset !important;
    border-right: none !important;
    border-bottom: 1px solid #000 !important;
    padding: 1.15rem 1rem !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }
  .service-hero-item:last-child {
    border-bottom: none !important;
  }

  /* Kill absolute follow layout — keep image in normal document flow */
  .service-hero-item .service-item-top,
  .service-hero-item .ua-follow-top {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    flex: 0 0 auto !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    display: block !important;
    padding: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
  }

  .service-hero-item .service-image-block,
  .service-hero-item .ua-follow-block {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    top: auto !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    display: block !important;
    pointer-events: none !important;
  }

  .service-hero-item .ua-follow-img,
  .service-hero-item .service-item-image {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: 7.75rem !important;
    max-width: 38vw !important;
    height: auto !important;
    opacity: 1 !important;
    transform: none !important;
    margin: 0 !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12) !important;
    border-radius: 0.5rem !important;
    overflow: hidden !important;
  }

  .service-hero-item .ua-follow-img .image-3,
  .service-hero-item .service-item-image .image-3,
  .service-hero-item .image-3 {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 3 / 4 !important;
    object-fit: cover !important;
    display: block !important;
  }

  .service-hero-item .div-block-18 {
    position: relative !important;
    z-index: 2 !important;
    align-self: center !important;
    margin-top: 0 !important;
    width: auto !important;
    flex: 1 1 auto !important;
    display: flex !important;
    align-items: center !important;
    min-width: 0 !important;
  }

  .service-hero-item .vertical-text {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    transform: none !important;
    rotate: none !important;
    font-size: clamp(1.75rem, 6vw, 2.75rem) !important;
    line-height: 1.1 !important;
    text-align: left !important;
    margin: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    max-width: none !important;
  }
}

@media (max-width: 767px) {
  .menu-logo img,
  a.w-nav-brand img {
    max-width: 143px; /* match live phone logo size */
  }
  .service-hero-item {
    gap: 1rem !important;
    padding: 1rem 0.85rem !important;
  }
  .service-hero-item .ua-follow-img,
  .service-hero-item .service-item-image {
    width: 6.75rem !important;
    max-width: 34vw !important;
  }
  .service-hero-item .vertical-text {
    font-size: clamp(1.55rem, 7.5vw, 2.15rem) !important;
  }
}

/* Portfolio filters — elegant mobile layout (replace awkward 2×2 float) */
@media (max-width: 991px) {
  .div-block-19 {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: auto auto !important;
    grid-auto-flow: row !important;
    flex-flow: unset !important;
    gap: 0.65rem !important;
    width: min(22rem, calc(100% - 2rem)) !important;
    max-width: calc(100% - 2rem) !important;
    margin-top: 4.75rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-inline: 0 !important;
    overflow: visible !important;
    box-sizing: border-box;
    justify-items: stretch;
    align-items: stretch;
  }
  .div-block-19 .link-block-4 {
    display: block !important;
    width: 100% !important;
    flex: unset !important;
  }
  .portfolio-filter-button {
    width: 100% !important;
    justify-content: center;
    white-space: nowrap;
    min-height: 2.65rem;
    display: inline-flex;
    align-items: center;
    box-sizing: border-box;
    padding: 0.55rem 0.85rem !important;
  }
  .portfolio-filter-button .button-text-block {
    text-align: center;
    width: 100%;
  }
}

@media (max-width: 479px) {
  .div-block-19 {
    width: min(20.5rem, calc(100% - 1.5rem)) !important;
    gap: 0.55rem !important;
  }
  .portfolio-filter-button {
    min-height: 2.5rem;
    padding: 0.5rem 0.7rem !important;
    font-size: 0.95em;
  }
}

/* Portfolio cards: keep immersive feel, tame extreme height on small phones */
@media (max-width: 479px) {
  .collection-item-2 {
    height: auto;
    min-height: 78vh;
    aspect-ratio: 3 / 4;
  }
  .link-block-2 {
    min-height: 78vh;
  }
}

/* About team imagery — fixed 500/800px heights blow mobile layout */
@media (max-width: 767px) {
  /* Wrapper was hard-coded to 800px — image shrank but gap remained under photo */
  .div-block-sarah {
    height: auto !important;
    max-height: none !important;
  }
  .image-6 {
    height: auto !important;
    max-height: 70vh;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    width: 100%;
  }
  .image-6.long {
    height: auto !important;
    max-height: min(72vh, 34rem);
    aspect-ratio: 3 / 4;
  }
  .sarah-block {
    padding-left: 1rem;
    padding-right: 1rem;
    margin-bottom: 3rem;
    grid-row-gap: 1.1rem !important;
    row-gap: 1.1rem !important;
  }
  .member-bio-wrapper {
    max-width: 100%;
    margin-top: 0;
  }
  .team-member-bio {
    margin-top: 0.75rem;
  }
}

/* Contact: min-width:35rem overflows tablet 2-col (~768–991) */
@media (max-width: 991px) {
  .contact-body-block {
    min-width: 0 !important;
    width: 100%;
    max-width: 100%;
  }
  .contact-hero-block,
  .contact-base {
    max-width: 100%;
    box-sizing: border-box;
  }
}
@media (max-width: 575px) {
  .form-two-columns {
    grid-template-columns: 1fr;
  }
  .form-field,
  .form-field.w-input,
  .button-3.is-form {
    min-height: 2.75rem;
    font-size: 16px; /* reduce iOS zoom-on-focus */
  }
  .form-field.is-text-area {
    min-height: 8.5rem;
  }
}

/* Generic section safety */
@media (max-width: 767px) {
  .padding-horizontal.padding-medium,
  .padding-horizontal.padding-small {
    padding-left: max(0.8rem, env(safe-area-inset-left));
    padding-right: max(0.8rem, env(safe-area-inset-right));
    box-sizing: border-box;
  }
  .footer-content {
    max-width: 100%;
  }
  .footer-brand img {
    max-width: min(170px, 46vw);
  }
}

/* Prefer reduced motion: keep reveals instant, don't invent new motion */
@media (prefers-reduced-motion: reduce) {
  .ua-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .service-hero-item .ua-follow-img {
    transition: none !important;
  }
}


/* UA_NAV_OVERFLOW_FIX */
@media (max-width: 991px) {
  .navbar .padding-horizontal.padding-small {
    padding-left: 0.85rem !important;
    padding-right: 0.85rem !important;
    padding-top: 1.1rem !important;
    padding-bottom: 1.1rem !important;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
  }
  .navbar,
  .navbar-block {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .navbar-block {
    align-items: flex-start;
    gap: 0.5rem;
  }
  .navbar-base {
    flex-shrink: 0;
    align-items: center;
  }
  .navbar-base:not(.left-navbar) {
    max-width: 55%;
    justify-content: flex-end;
    gap: 0.45rem;
    flex-wrap: nowrap;
    padding-top: 0.15rem;
  }
  .navbar .w-nav-button {
    display: none !important;
  }
  .navbar-toggle,
  .navbar-button {
    position: relative;
    top: 0;
  }
}
/* Hide Get Started earlier — logo + burger (live also hides CTA on narrow phones) */
@media (max-width: 767px) {
  .navbar-button {
    display: none !important;
  }
  .navbar-toggle {
    margin-right: 0.1rem;
  }
}

/* UA_NAV_MENU_AND_ABOUT_V2 */
@media (min-width: 992px) {
  .about-intro .action-block {
    /* keep Webflow 3-col collage around centered headline */
    align-items: center;
  }
}

/* UA_ABOUT_INTRO_SCROLL_V1 — elegant collage entrance on scroll */
.about-intro .ua-collage {
  opacity: 0 !important;
  will-change: opacity, transform;
  transition:
    opacity 0.95s cubic-bezier(0.16, 1, 0.3, 1),
    transform 1.05s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: var(--ua-delay, 0s);
}
.about-intro .ua-collage.is-title {
  transform: translate3d(0, 2.25rem, 0);
}
.about-intro .ua-collage.is-copy {
  transform: translate3d(0, 1.5rem, 0);
}
.about-intro .ua-collage.is-from-left {
  transform: translate3d(-2.75rem, 1.75rem, 0) scale(0.96);
}
.about-intro .ua-collage.is-from-right {
  transform: translate3d(2.75rem, 1.75rem, 0) scale(0.96);
}
.about-intro .ua-collage.ua-in {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale(1);
}
.about-intro .ua-collage .image-fill {
  transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: var(--ua-delay, 0s);
  transform: scale(1.06);
}
.about-intro .ua-collage.ua-in .image-fill {
  transform: scale(1);
}
@media (max-width: 991px) {
  .about-intro .ua-collage.is-from-left,
  .about-intro .ua-collage.is-from-right {
    transform: translate3d(0, 1.75rem, 0) scale(0.98);
  }
}
@media (prefers-reduced-motion: reduce) {
  .about-intro .ua-collage,
  .about-intro .ua-collage .image-fill {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* UA_NAV_MENU_MOTION_V1 — live-like open/close (IX2 replacement) */
.menu-overlay {
  transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  opacity: 0;
}
.menu-overlay.ua-overlay-in {
  opacity: 1 !important;
}

.menu-dropdown-list.w--open,
.menu-dropdown.w--open > .menu-dropdown-list {
  display: block !important;
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  z-index: 10050;
  background-color: transparent !important;
  width: 100%;
  max-width: 100%;
  padding: 0;
  pointer-events: none;
}
html.ua-menu-open .menu-dropdown-list.w--open,
html.ua-menu-open .menu-dropdown.w--open > .menu-dropdown-list {
  pointer-events: auto;
}

html.ua-menu-open .menu-overlay,
body.ua-menu-open .menu-overlay {
  display: block !important;
  /* Stay below .menu-dropdown (z-index: 900). Raising this above 900 paints the
     dimmer ON TOP of the light menu panel and makes it look dark/muddy. */
  z-index: 5 !important;
}

/* Open dropdown must beat the overlay inside the fixed .navbar stacking context */
html.ua-menu-open .menu-dropdown.w--open,
.menu-dropdown.w--open {
  z-index: 10070 !important;
  position: relative;
}

/* Match live: logo slides up into .clip while the panel drops down */
.navbar-brand .clip {
  overflow: hidden !important;
}
.navbar-brand .menu-logo {
  transform: translate3d(0, 0%, 0) !important;
  transition: transform 0.58s cubic-bezier(0.22, 1, 0.36, 1) !important;
  will-change: transform;
}
html.ua-menu-open .navbar-brand .menu-logo,
html.ua-menu-animating.ua-menu-open .navbar-brand .menu-logo {
  transform: translate3d(0, -100%, 0) !important;
}

/* Panel drops in from above while expanding — live uses --background-grey #e9e8e4 */
.navbar-menu-base {
  opacity: 0;
  transform: translate3d(0, -3.5rem, 0);
  transform-origin: top center;
  background-color: var(--background-grey, #e9e8e4) !important;
  transition:
    height 0.58s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: height, opacity, transform;
  z-index: 10060;
  pointer-events: auto;
}
html.ua-menu-open .navbar-menu-base {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Staggered cell + footer reveals (menu-scoped — into-view is reused on pages) */
.menu-dropdown-list .into-view-1,
.menu-dropdown-list .into-view-2,
.menu-dropdown-list .into-view-3,
.menu-dropdown-list .into-view-4 {
  opacity: 0;
  transform: translate3d(0, 1.75rem, 0);
  transition:
    opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.menu-dropdown-list .menu-bottom {
  opacity: 0;
  transform: translate3d(0, -2.5rem, 0);
  transition:
    opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.menu-dropdown-list .menu-view-1,
.menu-dropdown-list .menu-view-2,
.menu-dropdown-list .menu-view-3 {
  opacity: 0;
  transform: translate3d(0, 1.5rem, 0);
  transition:
    opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

html.ua-menu-open .menu-dropdown-list .into-view-1,
html.ua-menu-open .menu-dropdown-list .into-view-2,
html.ua-menu-open .menu-dropdown-list .into-view-3,
html.ua-menu-open .menu-dropdown-list .into-view-4,
html.ua-menu-open .menu-dropdown-list .menu-bottom,
html.ua-menu-open .menu-dropdown-list .menu-view-1,
html.ua-menu-open .menu-dropdown-list .menu-view-2,
html.ua-menu-open .menu-dropdown-list .menu-view-3 {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
html.ua-menu-open .menu-dropdown-list .into-view-1 { transition-delay: 0.1s; }
html.ua-menu-open .menu-dropdown-list .into-view-2 { transition-delay: 0.16s; }
html.ua-menu-open .menu-dropdown-list .into-view-3 { transition-delay: 0.22s; }
html.ua-menu-open .menu-dropdown-list .into-view-4 { transition-delay: 0.28s; }
html.ua-menu-open .menu-dropdown-list .menu-bottom { transition-delay: 0.18s; }
html.ua-menu-open .menu-dropdown-list .menu-view-1 { transition-delay: 0.26s; }
html.ua-menu-open .menu-dropdown-list .menu-view-2 { transition-delay: 0.32s; }
html.ua-menu-open .menu-dropdown-list .menu-view-3 { transition-delay: 0.38s; }

/* Faster exit */
html:not(.ua-menu-open) .menu-dropdown-list .into-view-1,
html:not(.ua-menu-open) .menu-dropdown-list .into-view-2,
html:not(.ua-menu-open) .menu-dropdown-list .into-view-3,
html:not(.ua-menu-open) .menu-dropdown-list .into-view-4,
html:not(.ua-menu-open) .menu-dropdown-list .menu-bottom,
html:not(.ua-menu-open) .menu-dropdown-list .menu-view-1,
html:not(.ua-menu-open) .menu-dropdown-list .menu-view-2,
html:not(.ua-menu-open) .menu-dropdown-list .menu-view-3 {
  transition-delay: 0s;
  transition-duration: 0.28s, 0.32s;
}

/* Hamburger → minus when open */
.navbar-toggle {
  cursor: pointer;
  z-index: 10070;
}
.ua-menu-open .navbar-toggle .toggle-spacer {
  height: 0 !important;
  margin: 0 !important;
  overflow: hidden;
  transition: height 0.25s ease, margin 0.25s ease;
}
.ua-menu-open .navbar-toggle .navbar-menu-line:last-child {
  display: none;
}
.ua-menu-open .navbar-toggle .navbar-menu-2 {
  justify-content: center;
}

/* Desktop: 4 equal nav cells (match live) */
@media (min-width: 992px) {
  .navbar-menu-grid {
    grid-template-columns: 1fr 1fr 1fr 1fr !important;
    grid-auto-flow: row !important;
  }
  .navbar-menu {
    min-height: 25rem;
  }
  .navbar-link {
    min-height: 0;
    height: 100%;
  }
  .menu-action {
    pointer-events: auto;
  }
}

/* Tablet/mobile: stack menu cells */
@media (max-width: 991px) {
  .menu-dropdown-list.w--open .navbar-menu-grid {
    grid-template-columns: 1fr !important;
    grid-auto-flow: row !important;
  }
  .menu-dropdown-list.w--open .navbar-link {
    min-height: 4.25rem;
    padding: 1.1rem 1.15rem;
    border-right: none !important;
    border-bottom: 1px solid var(--outline-dark);
    display: grid !important;
    grid-template-columns: 1fr auto;
    align-items: center;
    place-content: center space-between;
  }
  .menu-dropdown-list.w--open .navbar-link .clip {
    display: block !important;
  }
  .menu-dropdown-list.w--open .navbar-link .button-icon {
    display: flex !important;
    opacity: 1 !important;
  }
  .menu-dropdown-list.w--open .navbar-link .button-text-bottom,
  .menu-dropdown-list.w--open .navbar-link .button-icon-bottom {
    display: none !important;
  }
  .menu-dropdown-list.w--open .menu-bottom {
    grid-template-columns: 1fr !important;
  }
  .menu-dropdown-list.w--open .menu-social {
    grid-template-columns: 1fr 1fr 1fr !important;
    width: 100%;
  }
  .menu-dropdown-list.w--open .menu-action-content {
    border-right: none !important;
    border-bottom: 1px solid var(--outline-dark);
    display: flex !important;
    justify-content: space-between;
    align-items: center;
  }
  .menu-dropdown-list.w--open .social-link {
    min-height: 2.75rem;
    justify-content: center;
  }
  .menu-dropdown-list.w--open .menu-action {
    margin-bottom: 0.5rem;
  }
}
@media (max-width: 479px) {
  .menu-dropdown-list.w--open .menu-social {
    grid-template-columns: 1fr 1fr 1fr !important;
  }
  .menu-dropdown-list.w--open .social-link {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    font-size: 0.85em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .navbar-menu-base,
  .navbar-brand .menu-logo,
  .menu-dropdown-list .into-view-1,
  .menu-dropdown-list .into-view-2,
  .menu-dropdown-list .into-view-3,
  .menu-dropdown-list .into-view-4,
  .menu-dropdown-list .menu-bottom,
  .menu-dropdown-list .menu-view-1,
  .menu-dropdown-list .menu-view-2,
  .menu-dropdown-list .menu-view-3,
  .menu-overlay {
    transition: none !important;
  }
}

/* Ensure hamburger visible on mobile (do not hide custom toggle) */
@media (max-width: 991px) {
  .navbar-toggle {
    display: flex !important;
    min-width: 2.75rem;
    min-height: 2.75rem;
    flex-shrink: 0;
  }
  .navbar-base:not(.left-navbar) {
    max-width: none;
    width: auto;
    margin-left: auto;
  }
}

/* Testimonial / Client Love slider */
.testimonial-slider.w-slider {
  background: transparent;
}
.testimonial-slide-arrow {
  cursor: pointer;
  z-index: 5;
  pointer-events: auto;
}

/* UA_REVIEW_SWIPE_V1 — quote/name swipe inside card; fixed counter */
.testimonial-slider.ua-review-ready {
  position: relative;
  overflow: hidden;
}
.testimonial-slider.ua-review-ready .w-slider-mask {
  display: none !important;
}
.testimonial-slider.ua-review-ready .testimonial-slide-arrow,
.testimonial-slider.ua-review-ready .w-slider-arrow-left,
.testimonial-slider.ua-review-ready .w-slider-arrow-right {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  z-index: 8;
  cursor: pointer;
}
.ua-review-panel {
  position: relative;
  z-index: 2;
  padding: 0.9rem 1.2rem 0.8rem;
  text-align: center;
}
.ua-review-counter {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.4rem;
  margin: 0 auto 0.55rem;
  cursor: pointer;
  font-family: Bellefair, Georgia, serif;
  font-size: clamp(0.95rem, 1.05vw, 1.15rem);
  letter-spacing: 0.08em;
  color: rgba(40, 36, 30, 0.42);
  user-select: none;
}
.ua-review-digits {
  position: relative;
  display: inline-block;
  min-width: 1.55em;
  height: 1.2em;
  overflow: hidden;
  vertical-align: baseline;
  color: rgba(40, 36, 30, 0.55);
}
.ua-digit-layer {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease;
  will-change: transform, opacity;
}
.ua-digit-layer.is-in.from-down { transform: translate3d(0, 110%, 0); opacity: 0; }
.ua-digit-layer.is-in.from-up { transform: translate3d(0, -110%, 0); opacity: 0; }
.ua-digit-layer.is-out { transform: translate3d(0, 0, 0); opacity: 1; }
.ua-digit-layer.is-in.ua-digit-run { transform: translate3d(0, 0, 0); opacity: 1; }
.ua-digit-layer.is-out.to-up.ua-digit-run { transform: translate3d(0, -110%, 0); opacity: 0; }
.ua-digit-layer.is-out.to-down.ua-digit-run { transform: translate3d(0, 110%, 0); opacity: 0; }

.ua-review-stage {
  position: relative;
  overflow: hidden;
  min-height: 6.75rem;
}
.ua-review-card {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.45s ease;
  will-change: transform, opacity;
}
.ua-review-card.is-active {
  position: relative;
  opacity: 1;
  transform: translate3d(0, 0, 0);
  z-index: 2;
}
.ua-review-card.is-enter-right,
.ua-review-card.is-enter-left,
.ua-review-card.is-exit-left,
.ua-review-card.is-exit-right {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 1;
}
.ua-review-card.is-enter-right { opacity: 0; transform: translate3d(32%, 0, 0); }
.ua-review-card.is-enter-left { opacity: 0; transform: translate3d(-32%, 0, 0); }
.ua-review-card.is-exit-left { opacity: 0; transform: translate3d(-32%, 0, 0); }
.ua-review-card.is-exit-right { opacity: 0; transform: translate3d(32%, 0, 0); }

.ua-review-quote {
  width: 100%;
  max-width: 34rem;
  margin: 0 auto;
}
.ua-review-quote .text-size-large {
  margin: 0;
  font-family: Bellefair, Georgia, serif;
  font-size: clamp(1.05rem, 1.15vw, 1.3rem);
  line-height: 1.4;
  text-align: center;
  text-wrap: balance;
}
.ua-review-credit {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  margin: 0 auto;
  width: fit-content;
  max-width: 100%;
}
.ua-review-avatar {
  width: 4.1rem;
  height: 2.05rem;
  flex: 0 0 auto;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ua-review-avatar img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}
.ua-review-meta {
  text-align: center;
  min-width: 0;
}
.ua-review-name {
  line-height: 1.15;
  font-size: 0.92em;
}
.ua-review-role {
  margin-top: 0.12rem;
  font-size: 0.82em;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

@media (prefers-reduced-motion: reduce) {
  .ua-review-card,
  .ua-digit-layer {
    transition: none !important;
  }
}

/* UA_TESTIMONIAL_COMPACT_V2 — ~20% smaller, centered content */
@media (min-width: 992px) {
  .testimonial-block {
    min-height: 68vh !important;
    padding: 6.5rem 2rem 2.5rem !important;
    justify-content: flex-end;
    align-items: center;
  }
  .testimonial-slider-block {
    width: min(48%, 38rem) !important;
    max-width: 38rem;
    margin: 0 auto 0.35rem !important;
  }
  .testimonial-slider.ua-review-ready {
    padding-bottom: 2.65rem;
  }
  .testimonial-slide-arrow,
  .testimonial-slide-arrow.right-arrow,
  .testimonial-slider.ua-review-ready .testimonial-slide-arrow,
  .testimonial-slider.ua-review-ready .testimonial-slide-arrow.right-arrow {
    width: 50% !important;
    height: 2.65rem !important;
    inset: auto !important;
    top: auto !important;
    bottom: 0 !important;
    border-radius: 0 !important;
  }
  .testimonial-slide-arrow,
  .testimonial-slider.ua-review-ready .testimonial-slide-arrow:not(.right-arrow) {
    left: 0 !important;
    right: auto !important;
    border-bottom-left-radius: 0.5rem !important;
    border-top: none !important;
    border-right: 1px solid var(--silver, #c8c8c8) !important;
  }
  .testimonial-slide-arrow.right-arrow,
  .testimonial-slider.ua-review-ready .testimonial-slide-arrow.right-arrow {
    left: auto !important;
    right: 0 !important;
    border-bottom-right-radius: 0.5rem !important;
    border-top: none !important;
    border-left: none !important;
  }
}
@media (min-width: 1280px) {
  .testimonial-slider-block {
    width: min(42%, 40rem) !important;
    max-width: 40rem;
  }
}
@media (max-width: 991px) {
  .testimonial-block {
    min-height: auto !important;
    padding: 5rem 1rem 1.25rem !important;
    align-items: center;
  }
  .testimonial-slider-block {
    width: min(100%, 28rem) !important;
    margin: 0 auto 1.25rem !important;
  }
  .testimonial-slider.ua-review-ready {
    padding-bottom: 2.65rem;
  }
  .ua-review-panel {
    padding: 0.95rem 1rem 0.85rem;
  }
  .ua-review-stage {
    min-height: 8.25rem;
  }
}

/* Specialties mobile/tablet stack handled above (≤991px) — horizontal rows */

/* UA_NAV_MOBILE_V3 — closer to live mobile menu */
@media (max-width: 991px) {
  .menu-dropdown-list.w--open,
  .menu-dropdown.w--open > .menu-dropdown-list {
    inset: 0 !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    /* Keep shell transparent — panel color lives on .navbar-menu-base (#e9e8e4) */
    background-color: transparent !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    padding-top: max(5.5rem, calc(env(safe-area-inset-top) + 4.5rem));
    padding-bottom: max(1.25rem, env(safe-area-inset-bottom));
    padding-left: max(0.75rem, env(safe-area-inset-left));
    padding-right: max(0.75rem, env(safe-area-inset-right));
    box-sizing: border-box;
  }

  .ua-menu-open .navbar-menu-base {
    width: 100%;
    max-width: 28rem;
    margin-inline: auto;
    background-color: var(--background-grey, #e9e8e4) !important;
  }

  .ua-menu-open .navbar-link {
    min-height: 3.75rem;
    padding: 1rem 1rem;
    font-size: clamp(1.35rem, 5.5vw, 1.85rem);
  }

  .ua-menu-open .navbar-link .text-size-large {
    font-size: clamp(1.45rem, 6vw, 1.95rem);
    line-height: 1.15;
  }

  .ua-menu-open .menu-action-content {
    min-height: 3.25rem;
    padding: 0.95rem 1rem;
  }

  .ua-menu-open .menu-social {
    gap: 0.25rem;
    padding: 0.35rem 0 0.75rem;
  }

  .ua-menu-open .social-link {
    min-height: 3rem;
    border-bottom: 1px solid var(--outline-dark, rgba(40, 36, 30, 0.18));
  }

  /* Keep hamburger above the full-bleed panel */
  .ua-menu-open .navbar {
    z-index: 10080;
  }
  .ua-menu-open .navbar-toggle {
    z-index: 10090;
    background: transparent;
  }

  html.ua-menu-open,
  body.ua-menu-open {
    overflow: hidden !important;
    touch-action: none;
  }
}

@media (max-width: 479px) {
  .ua-menu-open .navbar-link {
    min-height: 3.5rem;
    padding: 0.9rem 0.85rem;
  }
  .ua-menu-open .menu-social {
    grid-template-columns: 1fr !important;
  }
  .ua-menu-open .social-link {
    justify-content: flex-start;
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* Specialties ≤991px uses horizontal row stack (see UA_RESPONSIVE block) */

/* SEO-only page H1s: keep for crawlers, never show in layout */
h1.ua-seo-page-h1 {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/*
 * UA_H1_HEADING_STYLE_RESET
 * Webflow global `h1 { text-transform: uppercase }` — live specialty titles are h2
 * with .heading-style-h3 (title case). SEO promoted those to h1, which forced ALL CAPS.
 */
h1.heading-style-h3 {
  text-transform: none;
  letter-spacing: normal;
}

/*
 * UA_BUTTON_TEXT_SWAP_V2 — Webflow IX dual-line hover (desktop only).
 * Scoped to clips that actually have the duplicate layer — do not touch
 * navbar toggle, logo clips, or unrelated .button-text nodes.
 */
@media (hover: hover) and (pointer: fine) {
  .clip:has(> .button-text-bottom),
  .clip:has(> .button-icon-bottom) {
    overflow: hidden;
  }

  .clip:has(> .button-text-bottom) > .button-text,
  .clip:has(> .button-text-bottom) > .button-text-one,
  .clip:has(> .button-text-bottom) > .button-text-two,
  .clip:has(> .button-icon-bottom) > .button-icon {
    transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
    transform: translate3d(0, 0, 0) !important;
  }

  a:hover > .clip > .button-text,
  a:hover > .clip > .button-text-one,
  a:hover > .clip > .button-text-two,
  a:hover .clip:has(> .button-text-bottom) > .button-text,
  a:hover .clip:has(> .button-text-bottom) > .button-text-one,
  a:hover .clip:has(> .button-text-bottom) > .button-text-two,
  a:focus-visible .clip:has(> .button-text-bottom) > .button-text,
  a:focus-visible .clip:has(> .button-text-bottom) > .button-text-one,
  a:focus-visible .clip:has(> .button-text-bottom) > .button-text-two,
  button:hover .clip:has(> .button-text-bottom) > .button-text,
  button:focus-visible .clip:has(> .button-text-bottom) > .button-text {
    transform: translate3d(0, -100%, 0) !important;
  }

  a:hover .clip:has(> .button-icon-bottom) > .button-icon,
  a:focus-visible .clip:has(> .button-icon-bottom) > .button-icon,
  button:hover .clip:has(> .button-icon-bottom) > .button-icon,
  button:focus-visible .clip:has(> .button-icon-bottom) > .button-icon {
    transform: translate3d(100%, -100%, 0) !important;
  }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce) {
  .clip:has(> .button-text-bottom) > .button-text,
  .clip:has(> .button-text-bottom) > .button-text-one,
  .clip:has(> .button-text-bottom) > .button-text-two,
  .clip:has(> .button-icon-bottom) > .button-icon,
  a:hover .clip:has(> .button-text-bottom) > .button-text,
  a:hover .clip:has(> .button-icon-bottom) > .button-icon {
    transition: none !important;
    transform: translate3d(0, 0, 0) !important;
  }
}

/*
 * UA_HOME_HERO_VIEWPORT_V1
 * Webflow uses width:100vw on the fixed hero video — with a vertical scrollbar
 * that overflows and, with overflow-x:clip, can crop the menu toggle. Also
 * leaves a hairline of body grey (--caleb-gray) under 100vh on some displays.
 */
.video-reveal,
.video-reveal-trigger {
  width: 100% !important;
  max-width: 100% !important;
  height: 100vh !important;
  height: 100dvh !important;
}
.background-video {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  inset: 0 !important;
}
.background-video video {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
/* Keep nav clear of the scrollbar edge */
@media (min-width: 992px) {
  .navbar .padding-horizontal.padding-small {
    padding-right: max(1.9rem, calc(1.25rem + env(safe-area-inset-right, 0px))) !important;
  }
}

/* UA_PROJECT_LIGHTBOX_V1 */
.lightbox-link-2 {
  cursor: zoom-in;
}
.lightbox-hover-content .team-location-icon,
.lightbox-hover-content .subtitle,
.lightbox-hover-content .view-image {
  opacity: 0 !important;
  transform: translate3d(0, 10px, 0) scale(0.9) !important;
  transition: opacity 0.28s ease, transform 0.28s ease !important;
  pointer-events: none;
}
.lightbox-hover-content .overlay {
  opacity: 0 !important;
  transition: opacity 0.28s ease !important;
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  .lightbox-link-2:hover .lightbox-hover-content .team-location-icon,
  .lightbox-link-2:hover .lightbox-hover-content .subtitle,
  .lightbox-link-2:hover .lightbox-hover-content .view-image {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) scale(1) !important;
  }
  .lightbox-link-2:hover .lightbox-hover-content .overlay {
    opacity: 1 !important;
    background-color: rgba(15, 19, 38, 0.28) !important;
  }
}

.ua-lightbox {
  position: fixed;
  inset: 0;
  z-index: 200000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
.ua-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.ua-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 12, 12, 0.92);
}
.ua-lightbox-stage {
  position: relative;
  z-index: 2;
  max-width: min(92vw, 1200px);
  max-height: 88vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ua-lightbox-image {
  max-width: 92vw;
  max-height: 88vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 0.35rem;
  transition: opacity 0.2s ease;
  user-select: none;
  -webkit-user-drag: none;
}
.ua-lightbox-close,
.ua-lightbox-nav {
  position: absolute;
  z-index: 3;
  border: 0;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  cursor: pointer;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.ua-lightbox-close {
  top: max(0.85rem, env(safe-area-inset-top));
  right: max(0.85rem, env(safe-area-inset-right));
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  font-size: 1.6rem;
  line-height: 1;
}
.ua-lightbox-nav {
  top: 50%;
  transform: translateY(-50%);
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 999px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.1rem;
}
.ua-lightbox-prev {
  left: max(0.65rem, env(safe-area-inset-left));
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='15 18 9 12 15 6'/%3E%3C/svg%3E");
}
.ua-lightbox-next {
  right: max(0.65rem, env(safe-area-inset-right));
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");
}
.ua-lightbox-single .ua-lightbox-nav {
  display: none;
}
.ua-lightbox-count {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: max(1rem, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.85);
  font-family: Bellefair, Georgia, serif;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
}
html.ua-lightbox-open,
body.ua-lightbox-open {
  overflow: hidden !important;
}
@media (max-width: 767px) {
  .ua-lightbox-nav {
    width: 2.5rem;
    height: 2.5rem;
  }
  .lightbox-hover-content {
    /* tap target is the whole image; no persistent expand badge on touch */
    display: none !important;
  }
}

/* Contact form select — match existing form-field look */
.ua-contact-form select.form-field,
.ua-contact-form select.w-select {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23333' d='M1.4 1.4L6 6l4.6-4.6L12 2.8 6 8.8 0 2.8z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
}
.ua-contact-form .g-recaptcha,
.w-form-formrecaptcha {
  display: none !important;
}

/*
 * UA_DROP_MONTBLANC_TRIAL_V1
 * Webflow export ships MontBlanc-Trial-* as the body/page base font.
 * Those trial cuts inject a "TRIAL FONT" watermark. Site chrome is already
 * Bellefair — keep that as the real base and never paint with Montblanc.
 */
body,
.page-wrapper,
.body-2,
.paragraph-5,
.paragraph-5._6,
.paragraph-5.extralight,
.paragraph-5.regular,
.paragraph-5.semi,
.paragraph-5.trial,
.paragraph-5.black {
  font-family: Bellefair, Georgia, "Times New Roman", serif !important;
}

/*
 * UA_SPECIALTY_PROJECT_TITLES_V1
 * Webflow shrinks .text-block-4 to .6rem on phones — too small under project photos.
 * Keep titles readable on kitchens / baths / bedrooms / living-spaces at every size.
 */
.text-block-4 {
  font-family: Bellefair, Georgia, "Times New Roman", serif !important;
  font-size: clamp(1.25rem, 2.2vw, 1.7rem) !important;
  line-height: 1.2 !important;
  letter-spacing: 0.015em !important;
  margin-top: 0.55rem !important;
  color: #111 !important;
}
@media (max-width: 767px) {
  .text-block-4 {
    font-size: clamp(1.2rem, 5.2vw, 1.45rem) !important;
    margin-top: 0.45rem !important;
  }
}
@media (max-width: 479px) {
  .text-block-4 {
    font-size: 1.25rem !important; /* override Webflow .6rem phone rule */
  }
}

