/* ACE Controls Bright Premium v1.9.9 — hero slideshow and scroll/accessibility polish */
:root { --ace-sticky-clearance: 108px; }
html { scroll-padding-top: var(--ace-sticky-clearance); }
main :is(section,div)[id] { scroll-margin-top: var(--ace-sticky-clearance); }
/* The carousel fits the existing hero frame; never grows taller with images. */
.hero-photograph.ace-hero-slideshow {
  position: relative; height: 440px; border-radius: 22px !important;
  isolation: isolate; background: #e2eff3; overflow: hidden;
}
.ace-hero-slideshow .ace-hero-track, .ace-hero-slideshow .ace-slide {
  position: absolute; inset: 0; width: 100%; height: 100%; margin: 0;
}
.ace-hero-slideshow .ace-slide { opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility 0s linear .7s; }
.ace-hero-slideshow .ace-slide.is-active { opacity: 1; visibility: visible; transition: opacity .7s ease, visibility 0s; }
.ace-hero-slideshow .ace-slide img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; transform: none !important; transition: none !important; }
/* Portrait project pictures remain recognizable instead of being severely cropped. */
.ace-hero-slideshow .ace-slide.is-portrait { background: #dce8ed; }
.ace-hero-slideshow .ace-slide.is-portrait img { object-fit: contain; }
.ace-hero-slideshow .ace-slide.is-portrait:before { content: ''; position: absolute; inset: 0; background: var(--ace-slide-bg) center/cover no-repeat; filter: blur(18px) brightness(.80); transform: scale(1.08); }
.ace-hero-slideshow .ace-slide.is-portrait img { position: relative; z-index: 1; filter: drop-shadow(0 6px 22px rgba(13,41,57,.15)); }
/* Earlier hero has a ::after gradient, which would otherwise sit over buttons. */
.ace-hero-slideshow:after { z-index: 1; pointer-events: none; background: linear-gradient(0deg,rgba(5,30,41,.77),rgba(7,33,45,0) 38%) !important; }
.ace-hero-slideshow .ace-hero-overlay { position: absolute; z-index: 3; left: 19px; right: 19px; bottom: 16px; display:flex; align-items: flex-end; justify-content: space-between; gap: 12px; color: white; }
.ace-hero-slideshow .ace-hero-description { display:flex; flex-direction: column; min-width:0; max-width: 62%; padding:0 0 4px; }
.ace-hero-slideshow .ace-hero-label { font: 800 9px/1.5 'Manrope',system-ui,sans-serif; letter-spacing:.16em; color:#d6ecf3; }
.ace-hero-slideshow .ace-hero-current { color:white; font: 800 clamp(12px,1.25vw,16px)/1.35 'Manrope',system-ui,sans-serif; margin-top: 4px; overflow-wrap:anywhere; text-shadow: 0 1px 8px #0008; }
.ace-hero-slideshow .ace-hero-actions { display:flex;align-items:center;gap:5px;flex-shrink:0; }
.ace-hero-slideshow .ace-hero-control { display:grid; place-items:center; padding:0; width:34px;height:34px;background:rgba(255,255,255,.90);color:#123b4c;border:1px solid rgba(255,255,255,.9);border-radius:50%;font:800 17px/1 system-ui,sans-serif;box-shadow:0 4px 14px #05223033;transition:background .15s ease,color .15s ease; }
.ace-hero-slideshow .ace-hero-control:hover { background:#fff;color:#006f8b; }
.ace-hero-slideshow .ace-hero-control:focus-visible { outline:3px solid #62d1ef !important;outline-offset:3px; }
.ace-hero-slideshow .ace-hero-count { min-width:52px; text-align:right; color:white; font:800 11px/1.4 'Manrope',system-ui,sans-serif; white-space:nowrap;text-shadow:0 1px 8px #000a; }
/* Prior single-image caption no longer used; remove its legacy border/position rules. */
.ace-hero-slideshow .hero-photo-caption { display:none; }
/* Improve main section anchor positioning under the fixed-height sticky header. */
#international-brands,#featured,#projects,#capabilities,#about { scroll-margin-top: var(--ace-sticky-clearance); }
@media (max-width: 950px) { .hero-photograph.ace-hero-slideshow { height: 360px; } }
@media (max-width: 700px) {
 :root { --ace-sticky-clearance: 94px; }
 .hero-photograph.ace-hero-slideshow { height: 290px; max-height: none; margin-bottom: 30px; }
 .ace-hero-slideshow .ace-hero-overlay { left:12px;right:12px;bottom:12px;align-items:flex-end; }
 .ace-hero-slideshow .ace-hero-current { font-size: 12px; }
 .ace-hero-slideshow .ace-hero-label { font-size:8px; }
 .ace-hero-slideshow .ace-hero-description { max-width:53%; }
 .ace-hero-slideshow .ace-hero-actions { gap:3px; }
 .ace-hero-slideshow .ace-hero-control { width:28px;height:28px;font-size:14px; }
 .ace-hero-slideshow .ace-hero-count { min-width:44px;font-size:10px; }
}
@media (max-width: 380px) {
 .ace-hero-slideshow .ace-hero-control { width:26px;height:26px; }
 .ace-hero-slideshow .ace-hero-count { min-width:40px;font-size:9px; }
}
@media (prefers-reduced-motion: reduce) {
 .ace-hero-slideshow .ace-slide { transition:none !important; }
 .ace-hero-slideshow .ace-hero-control { transition:none !important; }
}
/* Tablet navigation QA: six desktop links do not fit at 768–1100px. */
@media (max-width: 1120px) {
  .site-header .nav-inner { min-height: 74px; }
  .site-header .menu-toggle { display: block; flex: 0 0 43px; }
  .site-header .main-nav {
    display: none; position: absolute; top: calc(100% - 1px); left: 0; right: 0;
    background: #fff; flex-direction: column; align-items: stretch;
    gap: 0; padding: 12px max(24px, calc((100vw - 1240px)/2)) 20px;
    box-shadow: 0 20px 36px rgba(10,45,64,.13);
    border-bottom: 1px solid #dce8ed;
    max-height: calc(100vh - 74px); overflow-y: auto;
    z-index: 50;
  }
  .site-header .main-nav.open { display: flex; }
  .site-header .main-nav a { display: block; width: 100%; padding: 12px 8px; font-size: 14px; line-height: 1.35; white-space: normal; }
  .site-header .main-nav .nav-contact { width: max-content; min-width: 170px; padding: 12px 20px; margin-top: 6px; }
  :root { --ace-sticky-clearance: 96px; }
}
@media (max-width: 700px) {
  .site-header .main-nav { max-height: calc(100vh - 74px); }
  .site-header .main-nav .nav-contact { width: 100%; }
}
@media (min-width: 701px) and (max-width: 950px) {
  .ace-hero-slideshow .ace-hero-label { display:none; }
  .ace-hero-slideshow .ace-hero-current { font-size: 12px; }
  .ace-hero-slideshow .ace-hero-control { width:30px;height:30px;font-size:15px; }
  .ace-hero-slideshow .ace-hero-count { min-width:42px;font-size:10px; }
}
