/* Shared site header. Defensive rules keep it identical across independent
   page stylesheets. */
[data-shared-scroll-progress]{position:fixed!important;inset:0 auto auto 0!important;z-index:1200!important;width:100%!important;height:3px!important;margin:0!important;padding:0!important;background:linear-gradient(90deg,#c96743,#e5a084)!important;box-shadow:0 1px 5px rgba(169,73,45,.2)!important;transform:scaleX(0);transform-origin:left center!important;pointer-events:none!important;transition:transform 80ms linear!important;contain:strict!important;will-change:transform}
html.has-shared-fixed-header,html.has-shared-fixed-header body{max-width:100%!important;overflow-x:clip!important}
html.has-shared-fixed-header .site-footer,html.has-shared-fixed-header .site-footer .footer-bottom{max-width:100%!important;overflow-x:clip!important}
.site-header[data-shared-header]{
  --header-accent:#c96743;--header-accent-dark:#a9492d;--header-accent-soft:#f4ded5;
  --header-ink:#302d2b;--header-line:#ead9cf;
  --header-serif:Georgia,"Times New Roman",serif;
  --header-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  position:sticky!important;top:0!important;z-index:1000!important;width:100%!important;max-width:none!important;
  margin:0!important;padding:0!important;background:linear-gradient(180deg,rgba(255,249,246,.9),rgba(255,249,246,.58))!important;
  box-shadow:none!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  overflow:visible!important;transition:background 220ms ease,box-shadow 220ms ease,backdrop-filter 220ms ease!important;
  font-family:var(--header-sans)!important;color:var(--header-ink)!important;
}
.site-header[data-shared-header].is-scrolled{background:rgba(255,249,246,.82)!important;box-shadow:0 8px 35px rgba(120,73,54,.08)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.site-header[data-shared-header].shared-subpage-header{position:fixed!important;inset:0 0 auto 0!important}
.shared-header-spacer{display:block!important;width:100%!important;height:92px!important;margin:0!important;padding:0!important;visibility:hidden!important;pointer-events:none!important}
.site-header[data-shared-header] *{box-sizing:border-box}
.site-header[data-shared-header] a{color:inherit!important;text-decoration:none!important}
.site-header[data-shared-header] .sr-only{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}
.site-header[data-shared-header] .nav{position:relative!important;width:min(calc(100% - 48px),1160px)!important;max-width:1160px!important;min-height:92px!important;margin-inline:auto!important;padding:0!important;display:grid!important;grid-template-columns:170px 1fr auto!important;align-items:center!important;gap:28px!important;background:transparent!important;border:0!important;box-shadow:none!important}
.site-header[data-shared-header] .brand{position:relative!important;isolation:isolate!important;width:fit-content!important;display:inline-flex!important;flex-direction:column!important;align-items:flex-start!important;gap:0!important;line-height:1!important;padding:8px 14px 14px!important;z-index:2!important}
.site-header[data-shared-header] .brand::before{content:""!important;display:block!important;position:absolute!important;left:-44px!important;top:-42px!important;width:190px!important;height:150px!important;border-radius:50%!important;background:radial-gradient(ellipse at 45% 42%,rgba(239,194,177,.6),rgba(255,243,237,.34) 46%,transparent 72%)!important;filter:blur(1px)!important;opacity:.85!important;pointer-events:none!important;z-index:-1!important}
.site-header[data-shared-header] .brand::after{content:""!important;display:block!important;position:absolute!important;left:-10px!important;top:-12px!important;width:120px!important;height:120px!important;border:1px solid rgba(201,103,67,.2)!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-radius:50%!important;opacity:.8!important;pointer-events:none!important;z-index:-1!important}
.site-header[data-shared-header] .brand__mark{position:relative!important;display:block!important;color:var(--header-accent)!important;font-family:var(--header-serif)!important;font-size:3.1rem!important;font-weight:400!important;letter-spacing:0!important;line-height:1.18!important;padding:0 0 10px!important;margin:0!important}
.site-header[data-shared-header] .brand__sub{position:relative!important;display:block!important;margin:8px 0 0!important;padding:0 0 0 .08em!important;color:#5a5350!important;font-family:var(--header-sans)!important;font-size:.55rem!important;font-weight:700!important;line-height:1.1!important;letter-spacing:.16em!important;text-transform:uppercase!important;white-space:nowrap!important;transform:translateY(2px)!important}
.site-header[data-shared-header] .nav__links{justify-self:center!important;display:flex!important;align-items:center!important;gap:clamp(12px,1.8vw,30px)!important;margin:0!important;padding:0!important;color:var(--header-ink)!important;font-size:.95rem!important}
.site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact){position:relative!important;display:block!important;padding:8px 0!important;margin:0!important;color:var(--header-ink)!important;font-family:var(--header-sans)!important;font-size:.95rem!important;font-weight:400!important;line-height:1.2!important;white-space:nowrap!important;transition:color 180ms ease!important}
.site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact)::after{content:""!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;height:2px!important;border-radius:99px!important;background:var(--header-accent)!important;opacity:1!important;transform:scaleX(0)!important;transform-origin:left!important;transition:transform 180ms ease!important}
.site-header[data-shared-header] .nav__links>a:is(:hover,:focus-visible,.is-active){color:var(--header-accent)!important}
.site-header[data-shared-header] .nav__links>a:is(:hover,:focus-visible,.is-active)::after{transform:scaleX(1)!important}
.site-header[data-shared-header] .nav-toggle{display:none!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;border:0!important;border-radius:999px!important;background:var(--header-accent-soft)!important;place-items:center!important;gap:4px!important;padding:12px!important;margin:0!important;cursor:pointer!important;color:var(--header-accent)!important}
.site-header[data-shared-header] .nav-toggle span:not(.sr-only){display:block!important;width:18px!important;height:2px!important;border-radius:99px!important;background:var(--header-accent)!important}
.site-header[data-shared-header] .nav__mobile-footer{display:none!important}
.site-header[data-shared-header] .nav__cta{position:relative!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;min-height:48px!important;margin:0!important;padding:0 24px!important;border:0!important;border-radius:999px!important;background:linear-gradient(135deg,var(--header-accent),#d87955)!important;color:#fff!important;font-family:var(--header-sans)!important;font-size:.94rem!important;font-weight:800!important;line-height:1!important;white-space:nowrap!important;box-shadow:0 15px 34px rgba(188,91,57,.22)!important;transition:transform 180ms ease,box-shadow 180ms ease!important}
.site-header[data-shared-header] .nav__cta:hover{transform:translateY(-2px)!important;box-shadow:0 18px 40px rgba(188,91,57,.28)!important}
.site-header[data-shared-header] .nav__cta svg,.site-header[data-shared-header] .nav__mobile-contact svg{width:18px!important;height:18px!important;fill:none!important;stroke:currentColor!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}

@media (max-width:1100px){.site-header[data-shared-header] .nav{grid-template-columns:auto 1fr auto!important}.site-header[data-shared-header] .nav__links{gap:20px!important}}
@media (max-width:980px) and (min-width:841px){.site-header[data-shared-header] .nav{grid-template-columns:auto 1fr!important}.site-header[data-shared-header] .nav__cta{display:none!important}}

@media (max-width:840px),(min-width:841px) and (max-width:1199px) and (hover:none) and (pointer:coarse) and (orientation:landscape){
  .shared-header-spacer{height:76px!important}
  .site-header[data-shared-header].shared-subpage-header{position:absolute!important;inset:0 0 auto 0!important}
  html.mobile-menu-open,body.mobile-menu-open{overflow:hidden!important;overscroll-behavior:none!important}
  body.mobile-menu-open .site-header[data-shared-header]{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .site-header[data-shared-header]{background:rgba(255,249,246,.9)!important}
  .site-header[data-shared-header] .nav{width:min(calc(100% - 32px),1160px)!important;min-height:76px!important;grid-template-columns:auto auto!important;justify-content:space-between!important;gap:20px!important}
  .site-header[data-shared-header] .nav__cta{display:none!important}
  .site-header[data-shared-header] .nav-toggle{position:relative!important;z-index:1002!important;display:grid!important;gap:0!important;overflow:hidden!important}
  .site-header[data-shared-header] .nav-toggle span:not(.sr-only){position:absolute!important;left:13px!important;transition:transform 280ms cubic-bezier(.22,1,.36,1),opacity 180ms ease!important;transform-origin:center!important}
  .site-header[data-shared-header] .nav-toggle span:nth-child(1){transform:translateY(-6px)!important}.site-header[data-shared-header] .nav-toggle span:nth-child(2){transform:translateY(0)!important}.site-header[data-shared-header] .nav-toggle span:nth-child(3){transform:translateY(6px)!important}
  .site-header[data-shared-header] .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg)!important}.site-header[data-shared-header] .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0!important;transform:scaleX(0)!important}.site-header[data-shared-header] .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg)!important}
  .site-header[data-shared-header] .nav__links{position:fixed!important;inset:0!important;z-index:1001!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;align-content:normal!important;justify-content:flex-start!important;grid-template-columns:none!important;grid-auto-rows:auto!important;column-gap:0!important;row-gap:0!important;gap:0!important;width:100%!important;max-width:100%!important;height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;margin:0!important;padding:max(116px,calc(env(safe-area-inset-top) + 72px)) clamp(24px,8vw,42px) max(8px,env(safe-area-inset-bottom))!important;overflow-x:hidden!important;overflow-y:auto!important;counter-reset:mobile-nav!important;color:#2f2926!important;background:radial-gradient(circle at 88% 11%,rgba(223,134,99,.2),transparent 34%),radial-gradient(circle at 8% 90%,rgba(239,187,166,.18),transparent 40%),linear-gradient(145deg,#fffaf7,#fceae1)!important;border:0!important;border-radius:0!important;box-shadow:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateX(100%)!important;transition:transform 340ms cubic-bezier(.22,1,.36,1),opacity 240ms ease,visibility 340ms!important;overscroll-behavior:contain!important}
  .site-header[data-shared-header] .nav__links.is-open{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:translateX(0)!important}
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact){position:relative!important;inset:auto!important;flex:1 1 44px!important;display:grid!important;grid-template-columns:38px minmax(0,1fr)!important;align-items:center!important;justify-content:stretch!important;width:100%!important;min-width:0!important;max-width:100%!important;min-height:44px!important;max-height:72px!important;margin:0!important;padding:3px 14px!important;color:#332d2a!important;background:transparent!important;border-radius:8px!important;font-family:var(--header-serif)!important;font-size:clamp(1.25rem,6vw,1.625rem)!important;font-weight:400!important;line-height:1.1!important;text-align:left!important;counter-increment:mobile-nav!important;white-space:normal!important}
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact)::before{content:counter(mobile-nav,decimal-leading-zero)!important;position:static!important;inset:auto!important;display:block!important;align-self:start!important;width:auto!important;height:auto!important;margin:0!important;padding:5px 0 0!important;color:rgba(181,83,52,.62)!important;background:none!important;font-family:var(--header-sans)!important;font-size:.63rem!important;font-weight:800!important;line-height:1.2!important;letter-spacing:.12em!important;transform:none!important}
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact)::after{content:""!important;position:absolute!important;top:12px!important;bottom:12px!important;left:0!important;right:auto!important;width:2px!important;height:auto!important;margin:0!important;padding:0!important;opacity:0!important;transform:scaleY(.35)!important;transform-origin:center!important}
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact).is-active{color:var(--header-accent-dark)!important;background:rgba(215,112,76,.09)!important}
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact).is-active::after{opacity:1!important;transform:scaleY(1)!important}
  .site-header[data-shared-header] .nav__mobile-footer{display:grid!important;grid-template-columns:1fr!important;grid-template-areas:none!important;flex:0 0 auto!important;gap:4px!important;align-items:stretch!important;margin-top:8px!important;padding:10px 14px 4px!important;color:#4c403b!important;border-top:1px solid rgba(201,103,67,.2)!important}
  .site-header[data-shared-header] .nav__mobile-footer>span{position:static!important;grid-area:auto!important;grid-column:auto!important;margin:0!important;color:var(--header-accent)!important;font-size:.65rem!important;font-weight:800!important;letter-spacing:.18em!important;text-transform:uppercase!important}
  .site-header[data-shared-header] .nav__mobile-footer p{position:static!important;grid-area:auto!important;grid-column:auto!important;display:block!important;margin:0!important;color:#4c403b!important;font-family:var(--header-serif)!important;font-size:.95rem!important;line-height:1.25!important}
  .site-header[data-shared-header] .nav__mobile-contact{position:static!important;grid-area:auto!important;grid-column:auto!important;justify-self:start!important;display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;width:fit-content!important;min-width:0!important;max-width:100%!important;min-height:44px!important;margin:3px 0 0!important;padding:0!important;color:var(--header-accent-dark)!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;filter:none!important;transform:none!important;font-family:var(--header-sans)!important;font-size:.82rem!important;font-weight:800!important;line-height:1.2!important;letter-spacing:.08em!important;text-transform:uppercase!important;white-space:normal!important}
  .site-header[data-shared-header] .nav__mobile-contact::before,.site-header[data-shared-header] .nav__mobile-contact::after{content:none!important;display:none!important}
}
@media (prefers-reduced-motion:reduce){.site-header[data-shared-header] *{transition:none!important}}

/* Shared case-study return link: one viewport-relative position and identical
   geometry regardless of the individual hero grid used by a project page. */
main>.hero:first-child{position:relative!important}
main>.hero:first-child .back-link{
  box-sizing:border-box!important;
  position:absolute!important;
  top:28px!important;
  left:max(24px,calc((100vw - 1160px)/2))!important;
  z-index:20!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:170px!important;
  min-width:170px!important;
  max-width:170px!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  margin:0 0 28px!important;
  padding:0!important;
  font-family:var(--header-sans)!important;
  font-size:14px!important;
  font-weight:750!important;
  font-style:normal!important;
  line-height:1.2!important;
  letter-spacing:0!important;
  text-transform:none!important;
  white-space:nowrap!important;
  text-decoration:none!important
}
@media (max-width:840px),(min-width:841px) and (max-width:1199px) and (hover:none) and (pointer:coarse) and (orientation:landscape){
  main>.hero:first-child:has(>.back-link){
    padding-top:max(100px,calc(env(safe-area-inset-top) + 100px))!important
  }
  main>.hero:first-child .back-link{
    top:24px!important;
    left:clamp(16px,4vw,32px)!important
  }
  main>.hero:first-child>.back-link+div{
    translate:none!important
  }
}

/* Canonical homepage mobile navigation: portrait + touch landscape. */
@media (max-width:840px),(min-width:841px) and (max-width:1199px) and (hover:none) and (pointer:coarse) and (orientation:landscape){
  .site-header[data-shared-header]{z-index:1000!important}
  .site-header[data-shared-header] .nav .brand{z-index:1002!important}
  .site-header[data-shared-header] .nav-toggle{overflow:hidden!important;transition:background-color 260ms ease,box-shadow 260ms ease!important}
  .site-header[data-shared-header] .nav-toggle[aria-expanded="true"]{background:rgba(255,248,244,.78)!important;box-shadow:0 10px 28px rgba(107,56,38,.14)!important}
  .site-header[data-shared-header] .nav__links{height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;padding:max(72px,calc(env(safe-area-inset-top) + 58px)) clamp(24px,8vw,42px) max(12px,env(safe-area-inset-bottom))!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;backdrop-filter:blur(22px)!important;-webkit-backdrop-filter:blur(22px)!important}
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact){flex:0 0 auto!important;max-height:none!important;opacity:0!important;transform:translateX(24px)!important;transition:color 220ms ease,background-color 220ms ease,transform 360ms cubic-bezier(.22,1,.36,1),opacity 280ms ease!important}
  .site-header[data-shared-header] .nav__links.is-open>a:not(.nav__mobile-contact){opacity:1!important;transform:translateX(0)!important}
  .site-header[data-shared-header] .nav__links.is-open>a:nth-child(1){transition-delay:60ms!important}
  .site-header[data-shared-header] .nav__links.is-open>a:nth-child(2){transition-delay:100ms!important}
  .site-header[data-shared-header] .nav__links.is-open>a:nth-child(3){transition-delay:140ms!important}
  .site-header[data-shared-header] .nav__links.is-open>a:nth-child(4){transition-delay:180ms!important}
  .site-header[data-shared-header] .nav__links.is-open>a:nth-child(5){transition-delay:220ms!important}
  .site-header[data-shared-header] .nav__links.is-open>a:nth-child(6){transition-delay:260ms!important}
  .site-header[data-shared-header] .nav__links.is-open>a:nth-child(7){transition-delay:300ms!important}
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact).is-active{transform:translateX(3px) scale(1.015)!important}
  .site-header[data-shared-header] .nav__links.is-open>a:not(.nav__mobile-contact).is-active{transform:translateX(3px) scale(1.015)!important}
  .site-header[data-shared-header] .nav__mobile-footer{opacity:0!important;transform:translateY(14px)!important;transition:opacity 280ms ease 340ms,transform 340ms ease 340ms!important}
  .site-header[data-shared-header] .nav__links.is-open .nav__mobile-footer{opacity:1!important;transform:translateY(0)!important}
}

@media (max-width:840px){
  .site-header[data-shared-header] .nav__links{--mobile-nav-item-height:clamp(44px,7.5svh,56px);justify-content:flex-start!important;padding-top:calc(clamp(116px,14svh,124px) + env(safe-area-inset-top))!important;padding-bottom:max(8px,env(safe-area-inset-bottom))!important;overflow:hidden!important}
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact){flex:0 0 var(--mobile-nav-item-height)!important;height:var(--mobile-nav-item-height)!important;min-height:var(--mobile-nav-item-height)!important;max-height:var(--mobile-nav-item-height)!important}
  .site-header[data-shared-header] .nav__mobile-footer{flex:0 0 auto!important;margin-top:clamp(2px,.8dvh,8px)!important;padding-top:clamp(6px,1.2dvh,10px)!important;padding-bottom:clamp(4px,1dvh,10px)!important}
}

@media (max-width:840px) and (orientation:landscape){
  .site-header[data-shared-header] .nav__links{overflow-y:auto!important}
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact){flex:0 0 auto!important;max-height:none!important}
}

/* Mobile landscape only: centre menu labels clear of the logo lockup. */
@media (max-width:840px) and (orientation:landscape),
       (min-width:841px) and (max-width:1199px) and (hover:none) and (pointer:coarse) and (orientation:landscape){
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact){
    grid-template-columns:38px minmax(0,1fr) 38px!important;
    text-align:center!important;
  }
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact)::before{
    align-self:center!important;
    padding-top:0!important;
    text-align:center!important;
  }
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact).is-active,
  .site-header[data-shared-header] .nav__links.is-open>a:not(.nav__mobile-contact).is-active{
    transform:translateX(0) scale(1.015)!important;
  }
}

/* Touch landscape/tablet menu: keep the first link below the full logo lockup. */
@media (min-width:841px) and (max-width:1198px) and (hover:none) and (pointer:coarse){
  .site-header[data-shared-header] .nav__links{
    padding-top:max(96px,calc(env(safe-area-inset-top) + 82px))!important
  }
}

@media (max-width:280px){
  .site-header[data-shared-header] .nav{width:calc(100% - 20px)!important;gap:6px!important}
  .site-header[data-shared-header] .brand{padding-inline:6px!important}
  .site-header[data-shared-header] .brand__mark{font-size:2.6rem!important}
  .site-header[data-shared-header] .brand__sub{font-size:.48rem!important;letter-spacing:.1em!important}
  .site-header[data-shared-header] .nav__links{padding-inline:14px!important}
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact){grid-template-columns:30px minmax(0,1fr)!important;padding-inline:8px!important;font-size:1.2rem!important}
}


@media (max-width:840px) and (prefers-reduced-motion:reduce),
       (min-width:841px) and (max-width:1199px) and (hover:none) and (pointer:coarse) and (orientation:landscape) and (prefers-reduced-motion:reduce){
  .site-header[data-shared-header] .nav-toggle span:not(.sr-only),
  .site-header[data-shared-header] .nav__links,
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact),
  .site-header[data-shared-header] .nav__links>a:not(.nav__mobile-contact)::after,
  .site-header[data-shared-header] .nav__mobile-footer{transition:none!important}
}
