/* Milan Station v4.5 — motion and interaction system */
html{scroll-behavior:smooth}
body{-webkit-tap-highlight-color:transparent}
::selection{background:#6f1523;color:#fff}

/* scroll reveal: only hidden when JS is active */
.motion-ready .reveal-on-scroll{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal-on-scroll.is-visible{opacity:1;transform:none}

/* buttons / controls */
.motion-pressable{transition:transform .18s ease,box-shadow .22s ease,background-color .22s ease,color .22s ease,border-color .22s ease,opacity .22s ease}
.motion-pressable:hover{transform:translateY(-1px)}
.motion-pressable:active{transform:translateY(0) scale(.975)}
.btn{position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .25s ease,background-color .25s ease,color .25s ease,border-color .25s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(34,25,20,.1)}
.btn:active{transform:translateY(0) scale(.985);box-shadow:none}

/* navigation current / hover selection */
.site-header .nav-links>a,.site-header .nav-actions>a,.site-header .nav-dropdown>button{position:relative}
.site-header .nav-links>a:after,.site-header .nav-actions>a:after,.site-header .nav-dropdown>button:after{content:'';position:absolute;left:0;right:0;bottom:-8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .25s ease}
.site-header .nav-links>a:hover:after,.site-header .nav-actions>a:hover:after,.site-header .nav-dropdown>button:hover:after,.site-header a.is-current:after{transform:scaleX(1);transform-origin:left}
.site-header a.is-current{color:var(--wine)}
.language-switcher a{transition:opacity .2s ease,color .2s ease,transform .2s ease}.language-switcher a:hover{opacity:1;transform:translateY(-1px)}

/* selectable states */
.arrival-tab.active,.product-tab.active,.product-thumb.active{transform:translateY(-1px)}
.arrival-tab.active{box-shadow:inset 0 -2px 0 currentColor}
.product-tab{transition:color .22s ease,border-color .22s ease,transform .22s ease}
.product-panel.active{animation:panelIn .28s ease both}
.product-thumb{transition:opacity .2s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease}
.product-thumb.active{box-shadow:0 8px 22px rgba(34,27,22,.08);transform:translateY(-2px) scale(1.015)}
.product-wish.on{animation:heartPop .35s ease both}
.filters label,.filter-block label{transition:color .2s ease,transform .2s ease}.filters label.is-selected,.filter-block label.is-selected{color:var(--wine);transform:translateX(2px);font-weight:600}
.filters input[type="checkbox"],.filter-block input[type="checkbox"]{accent-color:var(--wine)}

/* cards */
.product-card,.service-card,.step,.experience-card,.welcome-point,.confidence-stat{transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,background-color .28s ease}
.service-card:hover,.step:hover,.experience-card:hover{transform:translateY(-4px);box-shadow:0 14px 38px rgba(32,25,21,.08)}
.welcome-point:hover{transform:translateX(4px)}

/* editorial imagery */
.motion-image-frame{overflow:hidden}.motion-image-frame img{transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s ease}.motion-image-frame:hover img{transform:scale(1.025)}

/* drag-scroll areas */
.drag-scroll{cursor:grab;scroll-behavior:smooth;overscroll-behavior-inline:contain;scrollbar-width:thin}
.drag-scroll.is-dragging{cursor:grabbing;scroll-behavior:auto;user-select:none}
.drag-scroll.is-dragging *{user-select:none;pointer-events:none}
.product-thumbnails.drag-scroll,.client-experience.drag-scroll{scroll-snap-type:x proximity}

/* image-switch feedback */
.product-main-media img{transition:opacity .16s ease,transform .18s ease}
.product-main-media.is-switching img{opacity:.28;transform:scale(.985)}

/* Google Maps */
.google-map-wrap{position:relative;min-height:430px;background:#e8e1d7;border:1px solid var(--line);overflow:hidden}
.google-map-frame{display:block;width:100%;height:100%;min-height:430px;border:0;filter:saturate(.78) contrast(.98)}
.google-map-overlay{position:absolute;left:18px;bottom:18px;max-width:360px;background:rgba(255,253,249,.94);backdrop-filter:blur(10px);border:1px solid rgba(210,200,188,.9);padding:16px 18px;box-shadow:0 14px 36px rgba(34,27,22,.12);pointer-events:none}
.google-map-overlay strong{display:block;font-family:var(--serif);font-size:1.25rem;margin-bottom:4px}.google-map-overlay span{display:block;font-size:.78rem;color:var(--muted);line-height:1.45}
.visit-home-map .google-map-wrap{width:100%;height:100%;min-height:440px;border:0}.visit-home-map .google-map-frame{min-height:440px}

@keyframes panelIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes heartPop{0%{transform:scale(.85)}55%{transform:scale(1.16)}100%{transform:scale(1)}}

@media(max-width:640px){
  .motion-ready .reveal-on-scroll{transform:translateY(14px)}
  .google-map-wrap,.google-map-frame{min-height:360px}
  .google-map-overlay{left:12px;right:12px;bottom:12px;max-width:none}
  .visit-home-map .google-map-wrap,.visit-home-map .google-map-frame{min-height:360px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .motion-ready .reveal-on-scroll{opacity:1!important;transform:none!important}
}
