/* Architectural motion: short responses, long ease-outs, no hidden baseline content. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.hero-title-line{display:block;overflow:clip;padding-bottom:.08em;margin-bottom:-.08em}
.hero-title-line>*{display:block}
.site-header{transition:background-color .3s,box-shadow .3s}
.site-header.is-scrolled{background:rgba(255,255,255,.97);box-shadow:0 8px 30px #141b3010;backdrop-filter:blur(12px)}
.reading-progress{position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:#b93c20;transform:scaleX(0);transform-origin:left;pointer-events:none}
.hero-index{display:flex;align-items:center;gap:20px}
.hero-index:before{content:"";width:48px;height:1px;background:#ffffff60}
.button{position:relative;isolation:isolate;overflow:hidden;transition:background-color .25s,transform .35s var(--motion-ease),box-shadow .35s}
.button:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent,#ffffff18,transparent);transform:translateX(-110%);transition:transform .65s var(--motion-ease);pointer-events:none}
.button>span,.text-link>span,.hero-bottomline a>span,.premium-service h3>span,.field-photo-caption>span:last-child,.editorial-links>a>span:last-child,.phone-link>span{display:inline-block;transition:transform .4s var(--motion-ease)}
.site-header nav>a:not(.button){position:relative}
.site-header nav>a:not(.button):after{content:"";position:absolute;bottom:-9px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--motion-ease)}
.site-header nav>a[aria-current=page]:after{transform:scaleX(1);transform-origin:left}
.premium-service-copy{position:relative}
.premium-service-copy:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:#171b32;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--motion-ease)}
.premium-service-photo img,.field-photo-frame img{transform-origin:50% 0;transition:transform 1s var(--motion-ease)}
.editorial-links>a{transition:background-color .35s}
.editorial-links h3{transition:transform .5s var(--motion-ease),color .3s}
.province-tile summary>b,.faq-list summary>span{transition:transform .35s var(--motion-ease)}
.province-tile summary{transition:color .25s}
.photo-filterbar button,.photo-dialog button{transition:background-color .25s,color .25s,border-color .25s}
@media(hover:hover) and (pointer:fine){
 .button:hover:before{transform:translateX(110%)}
 .button:hover{box-shadow:0 8px 22px #101a2818}
 .button:hover>span,.text-link:hover>span,.hero-bottomline a:hover>span,.premium-service:hover h3>span,.field-photo-card a:hover .field-photo-caption>span:last-child,.phone-link:hover>span{transform:translate(3px,-3px)}
 .site-header nav>a:not(.button):hover:after{transform:scaleX(1);transform-origin:left}
 .premium-service:hover .premium-service-photo img,.field-photo-card a:hover img{transform:scale(1.045)}
 .premium-service:hover .premium-service-copy:after{transform:scaleX(1)}
 .editorial-links>a:hover{background:#f5f6f8}
 .editorial-links>a:hover h3{transform:translateX(7px)}
 .editorial-links>a:hover>span:last-child{transform:translate(3px,-3px)}
 .province-tile summary:hover{color:#b93c20}
 .photo-dialog button:hover{background:#171b32;color:#fff;border-color:#171b32}
}
@media(prefers-reduced-motion:no-preference){
 .photo-dialog[open]{animation:dialog-enter .4s var(--motion-ease)}
 .photo-dialog[open]::backdrop{animation:backdrop-enter .35s ease-out}
 .photo-dialog[open] .photo-dialog-visual img{animation:photo-enter .45s var(--motion-ease)}
 @supports(interpolate-size:allow-keywords){
  .province-tile,.faq-list details{interpolate-size:allow-keywords}
  .province-tile::details-content,.faq-list details::details-content{height:0;overflow:clip;transition:height .35s var(--motion-ease),content-visibility .35s;transition-behavior:allow-discrete}
  .province-tile[open]::details-content,.faq-list details[open]::details-content{height:auto}
 }
}
@keyframes dialog-enter{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
@keyframes photo-enter{from{opacity:.25;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@keyframes menu-enter{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@media(max-width:780px){
 .hero-index{display:none}
 .site-header nav>a:not(.button):after{display:none}
}
@media(max-width:780px) and (prefers-reduced-motion:no-preference){.site-header nav.is-open{animation:menu-enter .3s var(--motion-ease)}}
@media(prefers-reduced-motion:reduce){
 .reading-progress{display:none}
 .hero-title-line{overflow:visible}
 *,*:before,*:after{animation:none!important;transition:none!important}
}
