/* Gentle motion, signature opening and refined details (all Dolce pages). */

/* ---------- veil: page-to-page fade + first-visit opening ---------- */
.lx-veil{position:fixed;inset:0;z-index:10000;background:#FBF7EF;display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .7s ease;pointer-events:none;}
.lx-veil.lx-out{opacity:0;}
.lx-veil.lx-leave{opacity:0;transition:opacity .38s ease;}
.lx-veil.lx-leave.lx-on{opacity:1;}
.lx-intro img{width:min(280px,58vw);height:auto;opacity:0;-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);filter:blur(3px);}
.lx-intro.lx-go img{-webkit-animation:lxDraw 1.5s cubic-bezier(.65,0,.35,1) forwards;animation:lxDraw 1.5s cubic-bezier(.65,0,.35,1) forwards;}
@keyframes lxDraw{
  0%{opacity:.2;-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);filter:blur(3px);}
  15%{opacity:1;}
  100%{opacity:1;-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);filter:blur(0);}
}
.lx-veil.lx-quick{transition-duration:.35s;}

/* ---------- soft reveals ---------- */
.lx-reveal{opacity:0;transform:translateY(26px);transition:opacity 1.1s ease,transform 1.2s cubic-bezier(.2,.7,.2,1);}
.lx-reveal.lx-in{opacity:1;transform:none;}


/* ---------- paper grain ---------- */
body::after{content:"";position:fixed;inset:0;z-index:9000;pointer-events:none;background:url(grain.png) repeat;background-size:96px 96px;opacity:.45;}

/* ---------- gold hairline divider with the Dolce mark ---------- */
.lx-divider{display:flex;align-items:center;justify-content:center;gap:clamp(16px,2.4vw,28px);margin:clamp(56px,8vw,96px) auto 0;padding-inline:20px;}
.lx-divider span{display:block;height:1px;width:min(170px,22vw);background:linear-gradient(90deg,rgba(166,128,90,0),rgba(166,128,90,.75));}
.lx-divider span:last-child{background:linear-gradient(90deg,rgba(166,128,90,.75),rgba(166,128,90,0));}
.lx-divider img{width:clamp(58px,6vw,74px);height:auto;opacity:.92;}
.lx-divider + .cta{padding-top:clamp(36px,5vw,64px);}

/* ---------- buttons: slow gold sweep on hover ---------- */
.btn,.foot-wa-btn,.psx-btn-ghost{background-image:linear-gradient(var(--gold),var(--gold));background-repeat:no-repeat;background-position:left center;background-size:0% 100%;transition:background-size .55s cubic-bezier(.65,0,.35,1),color .4s ease,border-color .4s ease;}
.btn:hover,.foot-wa-btn:hover,.psx-btn-ghost:hover{background-color:transparent;background-image:linear-gradient(var(--gold),var(--gold));background-repeat:no-repeat;background-position:left center;background-size:100% 100%;color:#FBF7EF;border-color:var(--gold);}
.nav-app-btn{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:left center;background-size:0% 100%;transition:background-size .55s cubic-bezier(.65,0,.35,1),color .35s ease;}
.nav-app-btn:hover{background-color:transparent !important;background-image:linear-gradient(var(--gold),var(--gold));background-repeat:no-repeat;background-position:left center;background-size:100% 100%;color:#FBF7EF;}
header.header-overlay .nav-app-btn:hover{color:var(--ink);background-image:linear-gradient(#F1E9DA,#F1E9DA);}

/* ---------- links: a thin gold line glides in underneath ---------- */
@media (min-width:1200px){
  nav.mainnav a{background-image:linear-gradient(var(--gold),var(--gold));background-repeat:no-repeat;background-position:left bottom;background-size:0% 1px;padding-bottom:4px;transition:background-size .45s cubic-bezier(.65,0,.35,1),color .3s ease;}
  nav.mainnav a:hover,nav.mainnav a.current{background-size:100% 1px;}
}
.tel-link{text-decoration:none;background-image:linear-gradient(rgba(166,128,90,.55),rgba(166,128,90,.55)),linear-gradient(var(--gold),var(--gold));background-repeat:no-repeat;background-position:left 100%,left 100%;background-size:100% 1px,0% 1px;padding-bottom:1px;transition:background-size .45s cubic-bezier(.65,0,.35,1);}
.tel-link:hover{background-size:100% 1px,100% 1px;}
.about-story-link{background-image:linear-gradient(var(--gold),var(--gold));background-repeat:no-repeat;background-position:left bottom;background-size:0% 1px;padding-bottom:4px;transition:background-size .45s cubic-bezier(.65,0,.35,1);}
.about-story-link:hover{background-size:100% 1px;}

/* ---------- respect "reduce motion" ---------- */
@media (prefers-reduced-motion:reduce){
  .lx-veil{display:none !important;}
  .lx-reveal{opacity:1 !important;transform:none !important;transition:none !important;}
}
