/* Progressive motion: no-JS and reduced-motion visitors keep visible content. */
.brand-loader { display: none; }
.motion-enabled .brand-loader {
  display: flex; position: fixed; inset: 0; z-index: 90;
  flex-direction: column; align-items: center; justify-content: center; gap: 28px;
  background: var(--paper); pointer-events: none;
  transition: opacity .5s ease, visibility .5s;
  animation: loader-safety .5s 1.8s forwards;
}
.loader-emblem { width: 240px; position: relative; overflow: hidden; animation: emblem-arrive .7s cubic-bezier(.22,1,.36,1) both; }
.loader-logo { width: 100%; height: auto; }
.loader-light { position: absolute; inset: -10% auto -10% -80%; width: 55%; background: linear-gradient(90deg,transparent,#fcfcfa9c,transparent); transform: skewX(-20deg); animation: logo-sweep 1.1s .15s both; }
.loader-rule { width: 112px; height: 1px; background: var(--gold); transform-origin: left; animation: rule-draw .85s ease both; }
.brand-loader p { color: var(--gold); font: 500 11px/1.5 var(--sans); }
.site-ready .brand-loader { animation:none; opacity: 0; visibility: hidden; }
.motion-enabled .hero-copy { animation: none; }
.scroll-progress { position: fixed; inset: 0 0 auto; height: 2px; z-index: 40; background: var(--gold); transform: scaleX(var(--page-progress,0)); transform-origin: left; pointer-events: none; }
main>section { position: relative; }
main>section:not(.hero):after {
  content: ''; position: absolute; right: 0; top: 16px; width: 180px; height: 160px;
  background: url('vineyard-ornament.svg') center/contain no-repeat;
  opacity: .10; pointer-events: none; z-index: 0;
}
main>section:not(.hero)>* { position: relative; z-index: 1; }
.home-cards:after,.wine-grid:after,.experiences:after,.contact-layout:after { opacity: .08!important; }
.journey:after,.brand-band:after,.cta:after { width: 250px!important; height: 210px!important; opacity: .18!important; top: auto!important; bottom: 0; }
.hero { background-position: var(--hero-x,50%) calc(50% + var(--hero-shift,0px)); }
.hero-copy>.eyebrow:after { width: 88px; }
.hero h1:after { content: ''; display: block; width: 56px; height: 1px; margin-top: 24px; background: var(--gold); }
.eyebrow:after { transform-origin: left; transition: width .65s ease; }
.story-photo,.story-gallery img { transition: box-shadow .6s,transform .6s; }
.feature,.experience,.wine { transition: box-shadow .4s,transform .4s,border-color .4s; }
.wine>img,.experience>img { transition: filter .6s; }
.feature:focus-visible,.experience:focus-visible { border-color: var(--gold); }
.button { position: relative; overflow: hidden; isolation: isolate; }
.button:before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg,transparent 20%,#ffffff20 50%,transparent 80%); transform: translateX(-110%); transition: transform .65s; pointer-events: none; }
.button:hover:before,.button:focus-visible:before { transform: translateX(110%); }
.button>span,.text-link>span,.circle { transition: transform .3s; }
.button:hover>span,.text-link:hover>span { transform: translateX(4px); }
.feature:hover .circle,.experience:hover .circle { transform: rotate(-30deg); }
.journey ol { position: relative; }
.journey ol:before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--gold); transform-origin: left; transform: scaleX(0); transition: transform 1.2s cubic-bezier(.22,1,.36,1); }
.journey.is-inview ol:before { transform: scaleX(1); }
.step { transition: color .4s; }
.journey li:hover .step { color: white; }
.request-form:focus-within { border-color: var(--gold); box-shadow: 0 12px 32px #39070e08; }
.request-form { transition: border-color .3s,box-shadow .3s; }
input,select,textarea { transition: background .25s,border-color .25s; }
input:focus,select:focus,textarea:focus { background: white; border-color: var(--gold); }
.menu[open] { animation:none; }
.menu[open] nav a { animation: menu-link .5s cubic-bezier(.22,1,.36,1) both; }
.menu nav a:nth-child(2) { animation-delay: .04s; }.menu nav a:nth-child(3) { animation-delay: .08s; }.menu nav a:nth-child(4) { animation-delay: .12s; }.menu nav a:nth-child(5) { animation-delay: .16s; }
.site-header { transition: box-shadow .35s,background .35s; }.site-header.is-scrolled { box-shadow: 0 8px 32px #39070e0a; background: #fcfcfaf5; }
.quote blockquote { padding-left: 24px; border-left: 1px solid var(--gold); }
@media(hover:hover) and (pointer:fine) {
  .wine:hover { transform: translateY(-5px); border-color: var(--gold); box-shadow: 0 16px 38px #39070e0d; }
  .story-photo:hover,.story-gallery img:hover { transform: translateY(-3px); box-shadow: 0 16px 32px #39070e12; }
  .wine:hover>img,.experience:hover>img { filter: saturate(1.08); }
}
@media(max-width:768px) { .hero { --hero-x: 60%; }.loader-emblem { width: 190px; } main>section:not(.hero):after { width: 130px; height: 120px; opacity: .07; }.journey:after,.brand-band:after,.cta:after { width: 180px!important; height: 160px!important; }.journey ol:before { display: none; } }
@keyframes emblem-arrive { from { opacity: 0; transform: translateY(8px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes logo-sweep { to { left: 130%; } }
@keyframes rule-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes loader-safety { to { opacity: 0; visibility: hidden; } }
@keyframes menu-arrive { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes menu-link { from { translate:0 8px; } to { translate:0 0; } }
@media(prefers-reduced-motion:reduce) {
  .motion-enabled .brand-loader { display: none!important; }
  .scroll-progress { display: none; }
  .hero { background-position: 60% center; }
  .journey ol:before { transform: none; }
  *,*:before,*:after { animation: none!important; transition: none!important; }
}
