/*
 * ALIFY v0.9.6 — canonical inner-page container pass
 * Loaded last. Every inner page uses one consistent content boundary.
 */
:root{
  --alify-shell-max:1440px;
  --alify-shell-gutter:40px;
}

/* Canonical page shell. Keep full-width section backgrounds, constrain section content. */
body.alify-inner-page .site-main > .container,
body.alify-inner-page .site-main > section > .container,
body.alify-inner-page .site-main > section > div.container,
body.alify-inner-page .site-main > div.container,
body.alify-inner-page .site-main .archive-hero > .container,
body.alify-inner-page .site-main .inner-hero > .container,
body.alify-inner-page .site-main .service-single-hero > .container,
body.alify-inner-page .site-main .project-single-hero > .container,
body.alify-inner-page .site-main .legal-hero > .container,
body.alify-inner-page .site-main .search-hero > .container,
body.alify-inner-page .site-main .error-page > .container,
body.alify-inner-page .site-main .cta-band > .container,
body.alify-inner-page .site-main .legal-contact > .container,
body.alify-inner-page .site-main .contact-map-section > .container{
  width:min(var(--alify-shell-max),calc(100% - (var(--alify-shell-gutter) * 2)))!important;
  max-width:var(--alify-shell-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  left:auto!important;
  right:auto!important;
  transform:none;
}

/* Sections may paint edge-to-edge, content may not. */
body.alify-inner-page .site-main > section{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Prevent nested editorial layouts from becoming wider than their parent shell. */
body.alify-inner-page .site-main .container > *,
body.alify-inner-page .site-main .archive-grid,
body.alify-inner-page .site-main [data-archive-grid],
body.alify-inner-page .site-main .faq-list,
body.alify-inner-page .site-main .article-content,
body.alify-inner-page .site-main .legal-content,
body.alify-inner-page .site-main .form-panel,
body.alify-inner-page .site-main .project-form-layout,
body.alify-inner-page .site-main .project-brief-layout,
body.alify-inner-page .site-main .booking-layout,
body.alify-inner-page .site-main .contact-layout,
body.alify-inner-page .site-main .inner-section-head,
body.alify-inner-page .site-main .journal-article__layout,
body.alify-inner-page .site-main .legal-layout,
body.alify-inner-page .site-main .project-overview__layout,
body.alify-inner-page .site-main .narrative-row,
body.alify-inner-page .site-main .service-process__layout,
body.alify-inner-page .site-main .faq-layout{
  max-width:100%!important;
  min-width:0!important;
}

/* Images/media cannot leak outside the shell through intrinsic sizing. */
body.alify-inner-page .site-main img,
body.alify-inner-page .site-main video,
body.alify-inner-page .site-main iframe,
body.alify-inner-page .site-main .swiper,
body.alify-inner-page .site-main .swiper-wrapper{
  max-width:100%!important;
}
body.alify-inner-page .site-main iframe{width:100%!important}

/* Archive filters and loose utility rows must align to the same shell. */
body.alify-inner-page .site-main > .filter-bar,
body.alify-inner-page .site-main > [data-filter],
body.alify-inner-page .site-main > .load-more-wrap,
body.alify-inner-page .site-main > .breadcrumbs{
  width:min(var(--alify-shell-max),calc(100% - (var(--alify-shell-gutter) * 2)))!important;
  max-width:var(--alify-shell-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Narrow reading columns remain narrow, but are centered inside the canonical shell. */
body.alify-inner-page .site-main .container.narrow{
  width:min(820px,calc(100% - (var(--alify-shell-gutter) * 2)))!important;
  max-width:820px!important;
}

@media (max-width:1023px){
  :root{--alify-shell-gutter:28px}
}
@media (max-width:767px){
  :root{--alify-shell-gutter:20px}
}
@media (max-width:424px){
  :root{--alify-shell-gutter:16px}
}

/* Home Featured Projects — v0.9.6 native scroll-snap carousel.
 * No transform engine, no max-content wrapper, no Swiper state on this section.
 */
.cohere-home-projects{overflow:hidden!important}
.cohere-home-projects>.container{min-width:0!important}
.home-project-carousel{
  position:relative!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
}
.home-project-carousel__viewport{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  scroll-behavior:smooth!important;
  overscroll-behavior-inline:contain!important;
  scrollbar-width:none!important;
  -ms-overflow-style:none!important;
  touch-action:pan-x pan-y!important;
  padding:0!important;
}
.home-project-carousel__viewport::-webkit-scrollbar{display:none!important}
.home-project-carousel__track{
  display:flex!important;
  align-items:stretch!important;
  gap:24px!important;
  width:100%!important;
  max-width:none!important;
  min-width:100%!important;
  transform:none!important;
  transition:none!important;
  will-change:auto!important;
}
.home-project-carousel .home-project-card{
  flex:0 0 calc(82% - 12px)!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  scroll-snap-align:start!important;
  scroll-snap-stop:always!important;
  transform:none!important;
  opacity:1!important;
  transition:none!important;
}
.home-project-carousel__controls{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  width:100%!important;
  padding-top:28px!important;
  position:relative!important;
  z-index:4!important;
}
.home-project-carousel__prev,
.home-project-carousel__next{
  width:48px!important;
  height:48px!important;
  flex:0 0 48px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid var(--ink,#212121)!important;
  border-radius:999px!important;
  background:#fff!important;
  color:var(--ink,#212121)!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  padding:0!important;
  opacity:1!important;
  transition:opacity .2s ease,background-color .2s ease,color .2s ease!important;
}
.home-project-carousel__prev:hover:not(:disabled),
.home-project-carousel__next:hover:not(:disabled){background:var(--ink,#212121)!important;color:#fff!important}
.home-project-carousel__prev:disabled,
.home-project-carousel__next:disabled{opacity:.28!important;cursor:default!important}
.home-project-carousel__prev i,
.home-project-carousel__next i{font-size:18px!important;line-height:1!important;pointer-events:none!important}
@media(max-width:1023px){
  .home-project-carousel__track{gap:20px!important}
  .home-project-carousel .home-project-card{flex-basis:88%!important}
}
@media(max-width:767px){
  .home-project-carousel__track{gap:14px!important}
  .home-project-carousel .home-project-card{flex-basis:94%!important}
  .home-project-carousel__controls{padding-top:20px!important}
  .home-project-carousel__prev,.home-project-carousel__next{width:44px!important;height:44px!important;flex-basis:44px!important}
}

/* v0.9.6 — unified native carousel + project lightbox. No transform engine. */
.alify-carousel{position:relative;width:100%;max-width:100%;min-width:0;overflow:hidden}
.alify-carousel__viewport{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-inline:contain;scrollbar-width:none;-ms-overflow-style:none;touch-action:pan-x pan-y}
.alify-carousel__viewport::-webkit-scrollbar{display:none}
.alify-carousel__track{display:flex;align-items:stretch;gap:22px;width:100%;min-width:100%;max-width:none;transform:none!important;transition:none!important}
.alify-carousel__slide{flex:0 0 min(72vw,780px);width:auto;min-width:0;max-width:none;scroll-snap-align:start;scroll-snap-stop:always;transform:none!important;opacity:1!important}
.alify-carousel__slide>.project-card{height:100%}
.alify-carousel__controls{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding-top:24px}
.alify-carousel__prev,.alify-carousel__next{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;flex:0 0 48px;padding:0;border:1px solid var(--ink,#212121);border-radius:999px;background:#fff;color:var(--ink,#212121);cursor:pointer;transition:background-color .2s ease,color .2s ease,opacity .2s ease}
.alify-carousel__prev:hover:not(:disabled),.alify-carousel__next:hover:not(:disabled){background:var(--ink,#212121);color:#fff}
.alify-carousel__prev:disabled,.alify-carousel__next:disabled{opacity:.28;cursor:default}
.alify-carousel__prev i,.alify-carousel__next i{pointer-events:none}

.project-lightbox{position:fixed!important;inset:0!important;z-index:1000!important;width:100vw!important;height:100dvh!important;padding:clamp(18px,3vw,40px)!important;background:rgba(5,8,8,.97)!important;color:#fff!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important}
.project-lightbox[hidden]{display:none!important}
.project-lightbox__stage{position:relative;width:min(1280px,calc(100vw - 120px));height:min(82dvh,900px);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:zoom-out}
.project-lightbox__slide{position:absolute;inset:0;margin:0;display:none;align-items:center;justify-content:center;pointer-events:none}
.project-lightbox__slide.is-active{display:flex;pointer-events:auto}
.project-lightbox__slide img{display:block;width:auto!important;max-width:100%!important;height:auto!important;max-height:100%!important;object-fit:contain;border-radius:8px}
.project-lightbox__chrome{position:absolute;top:24px;left:24px;right:24px;z-index:5;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.project-lightbox__counter{display:flex;gap:8px;font:400 12px/1.4 var(--mono);letter-spacing:.06em;color:rgba(255,255,255,.74)}
.project-lightbox__chrome>*{pointer-events:auto}
.project-lightbox .lightbox__close,.project-lightbox__prev,.project-lightbox__next{position:absolute;z-index:6;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:rgba(0,0,0,.18);color:#fff;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}
.project-lightbox .lightbox__close{position:static}
.project-lightbox__prev{left:24px;top:50%;transform:translateY(-50%)}
.project-lightbox__next{right:24px;top:50%;transform:translateY(-50%)}
.project-lightbox .lightbox__close:hover,.project-lightbox__prev:hover,.project-lightbox__next:hover{background:#fff;color:#17171c;border-color:#fff}
body.dialog-open{overflow:hidden!important}

@media(max-width:820px){
  .alify-carousel__slide{flex-basis:88%}
  .project-lightbox__stage{width:calc(100vw - 32px);height:calc(100dvh - 120px)}
  .project-lightbox__prev,.project-lightbox__next{width:46px;height:46px;top:auto;bottom:22px;transform:none}
  .project-lightbox__prev{left:calc(50% - 54px)}
  .project-lightbox__next{right:calc(50% - 54px)}
  .project-lightbox__chrome{top:16px;left:16px;right:16px}
}
@media(max-width:620px){.alify-carousel__slide{flex-basis:94%}.alify-carousel__track{gap:14px}}
.alify-carousel__dots{display:flex;align-items:center;justify-content:center;gap:8px;padding-top:18px}
.alify-carousel__dot{width:8px;height:8px;padding:0;border:1px solid var(--line,#d9d9dd);border-radius:999px;background:transparent;cursor:pointer}
.alify-carousel__dot.is-active{background:var(--ink,#212121);border-color:var(--ink,#212121)}
/* Home testimonial carousel uses one complete split panel per slide. */
.home-testimonial-carousel .alify-carousel__slide{flex:0 0 100%;width:100%;scroll-snap-align:start}
.home-testimonial-carousel .cohere-testimonial__split{min-height:580px}
@media(max-width:820px){.home-testimonial-carousel .alify-carousel__slide{flex-basis:100%}.home-testimonial-carousel .cohere-testimonial__split{min-height:0}}

/* v0.9.7 archive AJAX feedback */
.archive-request-status--error{position:relative!important;width:100%!important;height:auto!important;clip:auto!important;overflow:visible!important;margin:0 auto 20px!important;padding:12px 16px!important;border:1px solid #b30000!important;border-radius:8px!important;color:#8d0000!important;background:#fff!important;font-size:14px!important}
.filter-bar.is-loading{opacity:.62;pointer-events:none}
[data-load-more][hidden]{display:none!important}
