/* Gentle entrance, scroll and interaction motion shared by all pages. */
@keyframes backdropEnter{from{opacity:0}to{opacity:1}}
@keyframes titleEnter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes headerEnter{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}
@keyframes typeCharacter{from{opacity:0}to{opacity:1}}
@keyframes arrowBreathe{0%,80%,100%{transform:translateX(0) scale(1)}90%{transform:translateX(4px) scale(1.09)}}
@keyframes pageEnter{from{opacity:.78}to{opacity:1}}
@keyframes innerContentEnter{from{opacity:0}to{opacity:1}}
body{animation:pageEnter .3s ease-out both;transition:opacity .22s ease}
.inner-page main{animation:innerContentEnter .8s cubic-bezier(.2,.75,.2,1) .12s backwards}
body.is-leaving{opacity:0;pointer-events:none}
.global-nav a[aria-current="page"]{color:#f39100;font-weight:700}
.global-nav .contact[aria-current="page"]:not(:hover){color:#f39100}
.footer-nav a[aria-current="page"]{color:#f39100;font-weight:700}
.site-header{animation:headerEnter .8s cubic-bezier(.2,.8,.2,1) 3.7s backwards}
.inner-page .site-header,.after-navigation .site-header{animation:none}
.mv-bg{animation:backdropEnter 1s ease-out both}
.city-stage{animation:backdropEnter 1.4s ease-out both}
.mv-copy .line{display:inline-block;opacity:1;transform:none;animation:none}
.mv-copy .mv-char{display:inline-block;opacity:0;transform:none;animation:typeCharacter .05s linear both}
.mv-copy .line--1 .mv-char{animation-delay:calc(.82s + var(--char-index) * .07s)}
.mv-copy .line--2 .mv-char{animation-delay:calc(1.95s + var(--char-index) * .07s)}
.mv-copy p{animation-delay:3.35s}
.page-title p{animation:titleEnter .85s cubic-bezier(.2,.8,.2,1) .35s both}
.page-title h1{animation:titleEnter .85s cubic-bezier(.2,.8,.2,1) .67s both}
.scroll-reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .85s cubic-bezier(.2,.8,.2,1)}
.scroll-reveal.is-visible{opacity:1;transform:translateY(0)}
[data-parallax]{translate:0 var(--parallax-y,0px);will-change:translate}
.more-link,.form-button{position:relative;isolation:isolate;overflow:hidden;box-shadow:0 5px 18px rgba(232,139,0,.12);transition:box-shadow .3s,transform .3s,color .25s}
.more-link::before,.form-button::before{content:"";position:absolute;inset:0;z-index:0;background:#faa11b;transform:scaleX(0);transform-origin:left center;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.more-link>span,.form-button>span,.more-link>img,.form-button>img{position:relative;z-index:1}
.more-link::after,.form-button::after{content:"";position:absolute;top:50%;right:14px;z-index:2;width:19px;height:19px;background:url(../assets/btn_arr01_on.webp) center/contain no-repeat;transform:translateY(-50%);opacity:0;transition:opacity .18s ease}
.form-button::after{right:22px;width:33px;height:33px;background-image:url(../assets/btn_arr3_on.webp)}
.more-link img,.form-button img,.contact-banner>img{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.more-link>img,.form-button>img{opacity:1;transition:opacity .18s ease,transform .35s cubic-bezier(.2,.8,.2,1)}
.contact-banner{position:relative;isolation:isolate;overflow:hidden;transition:transform .35s,box-shadow .35s}
.contact-banner::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,#ed8500,#f6ac37);transform:scaleX(0);transform-origin:left center;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.contact-banner>div,.contact-banner>img{position:relative;z-index:1}
.contact-banner>img,.form-button img{animation:arrowBreathe 3.6s ease-in-out 2s infinite}
@media(hover:hover){
  .more-link:hover,.form-button:hover{color:#fff;box-shadow:0 12px 28px rgba(232,139,0,.24);transform:translateY(-4px);transition:box-shadow .3s,transform .3s,color .14s .16s}
  .more-link:hover{background:transparent}
  .form-button:hover{background:#fdfdfd}
  .more-link:hover::before,.form-button:hover::before{transform:scaleX(1)}
  .more-link:hover::after,.form-button:hover::after{opacity:1;transition-delay:.25s}
  .more-link:hover>img,.form-button:hover>img{opacity:0;animation:none;transform:none;transition-delay:.31s,0s}
  .contact-banner:hover{filter:none;transform:translateY(-5px);box-shadow:0 20px 36px rgba(232,139,0,.22)}
  .contact-banner:hover::before{transform:scaleX(1)}
  .contact-banner:hover>img{animation:none;transform:translateX(6px) scale(1.08)}
  .global-nav .contact:hover{box-shadow:0 8px 22px rgba(232,139,0,.2)}
}
.more-link:focus-visible,.form-button:focus-visible{color:#fff;box-shadow:0 12px 28px rgba(232,139,0,.24)}
.more-link:focus-visible::before,.form-button:focus-visible::before{transform:scaleX(1)}
.more-link:focus-visible::after,.form-button:focus-visible::after{opacity:1}
.more-link:focus-visible>img,.form-button:focus-visible>img{opacity:0}
@media(min-width:769px){
  .site-header,.inner-page .site-header{position:fixed;inset:0 0 auto;z-index:30;align-items:flex-start;padding:35px 40px 6px 42px;transition:padding .4s ease,background .4s ease,box-shadow .4s ease}
  .site-header .brand{transition:width .4s ease,flex-basis .4s ease}
  .site-header .global-nav{gap:clamp(29px,3vw,40px);transition:gap .4s ease}
  .header-compact .site-header{align-items:center;padding:10px 34px 8px;background:rgba(255,255,255,.7);box-shadow:0 7px 24px rgba(74,48,20,.09)}
  .header-compact .site-header .brand{width:58px;flex-basis:58px}
  .header-compact .site-header .global-nav{gap:clamp(27px,2.6vw,34px)}
  .header-compact .site-header .global-nav .contact{height:32px}
  body:not(.inner-page) .global-nav .contact{background:#fff}
  body:not(.inner-page) .global-nav .contact:hover{background:#faa11b;color:#fff}
}
@media(max-width:768px){.mv-copy .line{display:block}.site-header{animation-delay:3.7s}.inner-page .site-header,.after-navigation .site-header{animation:none}}
@media(prefers-reduced-motion:reduce){
  body,.site-header,.inner-page .site-header,.inner-page main,.mv-bg,.city-stage,.page-title p,.page-title h1,.contact-banner>img,.form-button img{animation:none!important}
  body,.site-header,.inner-page .site-header,.more-link,.form-button,.more-link>img,.form-button>img,.more-link::before,.form-button::before,.more-link::after,.form-button::after,.contact-banner,.contact-banner::before,.scroll-reveal,[data-parallax]{transition:none!important}
  .scroll-reveal{opacity:1!important;transform:none!important}
  .mv-copy .line,.mv-copy .mv-char{animation:none!important;opacity:1!important;transform:none!important}
  [data-parallax]{translate:none!important}
}
/* Opening the mobile menu cancels any header entrance transform. */
@media(max-width:768px){body.menu-open .site-header,body.header-intro-done .site-header,body.mobile-scrolled .site-header{animation:none!important;transform:none!important;opacity:1!important}}

/* Keep the mobile menu control reachable while the page scrolls. */
html{scroll-padding-top:95px}
@media(max-width:768px){
  html{scroll-padding-top:24px}
  .site-header,.inner-page .site-header{position:fixed;inset:20px 20px auto;z-index:30;pointer-events:none}
  .site-header .brand,.site-header .menu-toggle,.site-header .global-nav{pointer-events:auto}
  .site-header .menu-toggle{position:relative;top:auto;right:auto}
  .site-header .brand{transition:opacity .25s ease}
  .mobile-scrolled:not(.menu-open) .site-header .brand{opacity:0;visibility:hidden;pointer-events:none}
}
.header-compact:not(.inner-page) .global-nav .contact:not(:hover){background:#fbe7c5}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
