/* Oak & Iron effects — Look (Design) patch, extended by Build. transform/opacity only. */
section[id],.menu-group[id]{scroll-margin-top:84px}

/* Scroll reveal (JS adds .oi-rv only to below-the-fold elements) */
.oi-rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease-out,transform .7s cubic-bezier(.2,.7,.2,1),border-color .22s ease}
.oi-rv.oi-in{opacity:1;transform:none}
.oi-rv.oi-done{transition:transform .25s ease,border-color .22s ease}

/* Lift + bronze glow on cards and buttons */
.card,.btn{position:relative}
.card{transition:border-color .22s ease,transform .25s ease}
.card::after,.btn::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;opacity:0;box-shadow:0 0 0 1px rgba(176,137,79,.55),0 14px 34px -14px rgba(176,137,79,.6);transition:opacity .25s ease}
.btn{transition:background .2s ease,transform .25s ease}
.card:is(:hover,:focus-within){border-color:#b0894f}
.card:is(:hover,:focus-within){transform:translateY(-4px)}
.btn:is(:hover,:focus-visible){transform:translateY(-2px)}
.oi-rv.oi-in:not(.oi-done):is(:hover,:focus-within){transform:none}
.card:is(:hover,:focus-within)::after,.btn:is(:hover,:focus-visible)::after{opacity:1}
.wax-row{transition:background-color .22s ease}
.wax-row:hover{background-color:rgba(176,137,79,.07)}
:is(a,button,summary):focus-visible{outline:2px solid #b0894f;outline-offset:3px}

/* Nav links: bronze underline that draws in from the left */
.nav-links a{position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:#b0894f;transform:scaleX(0);transform-origin:right center;transition:transform .38s cubic-bezier(.2,.7,.2,1)}
.nav-links a:is(:hover,:focus-visible)::after{transform:scaleX(1);transform-origin:left center}

/* Hero: one-time light sweep over the plaque */
.plaque::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:min(100%,520px);transform:translateX(-50%);pointer-events:none;mix-blend-mode:screen;background:linear-gradient(105deg,transparent 40%,rgba(243,234,223,.16) 50%,transparent 60%) 120% 0/250% 100% no-repeat;opacity:0}
.plaque.oi-shine::after{animation:oi-sheen 1.6s .4s ease-in-out 1 both}
@keyframes oi-sheen{0%{opacity:1;background-position:120% 0}90%{opacity:1}100%{opacity:0;background-position:-20% 0}}
@media (min-width:760px){.plaque::after{width:min(100%,560px)}}
.plaque{will-change:transform}

/* Slow Ken Burns: hero plaque breathes, studio photos drift */
html.oi-fx .plaque-sign{animation:oi-breathe 18s ease-in-out infinite alternate;transform-origin:50% 55%}
@keyframes oi-breathe{from{transform:scale(1)}to{transform:scale(1.03)}}
html.oi-fx :is(.room,.still) img{animation:oi-kb 26s ease-in-out infinite alternate;transform-origin:60% 40%}
@keyframes oi-kb{from{transform:scale(1.001)}to{transform:scale(1.07) translate3d(-1%,-1%,0)}}

/* Soft gradient sweep across primary Book buttons */
.oi-sheen{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}
.oi-sheen::before{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:40%;background:linear-gradient(100deg,transparent,rgba(255,247,232,.42),transparent);transform:translateX(-160%) skewX(-18deg);animation:oi-sweep 6s cubic-bezier(.4,0,.2,1) 1.4s infinite}
@keyframes oi-sweep{0%{transform:translateX(-160%) skewX(-18deg)}26%,100%{transform:translateX(360%) skewX(-18deg)}}

/* Booking panel pulse when you arrive at #book */
.book-panel{position:relative}
.book-panel::after{content:"";position:absolute;inset:-1px;pointer-events:none;opacity:0;box-shadow:0 0 0 1px #b0894f,0 0 46px 2px rgba(176,137,79,.32)}
.book-panel.oi-pulse::after{animation:oi-pulse 1.5s ease-out 2}
@keyframes oi-pulse{0%{opacity:0}30%{opacity:1}100%{opacity:0}}

@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
.oi-rv,.card,.btn,.plaque,.plaque-sign,.room img,.still img{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
.plaque::after,.oi-sheen,.book-panel::after{display:none}
.nav-links a::after{transition:none}
}
