*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body),sans-serif;background:var(--s);color:var(--p);overflow-x:hidden;margin:0}
h1,h2,h3,.fd{font-family:var(--font-heading),serif}

.rv{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.rv.s1{transition-delay:.14s}.rv.s2{transition-delay:.28s}.rv.s3{transition-delay:.42s}
.rv.on{opacity:1;transform:none}

.btn-r{position:relative;overflow:hidden;background:var(--p);transition:transform .2s,box-shadow .2s;display:inline-flex;align-items:center;justify-content:center}
.btn-r::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);transform:translateX(-120%);transition:transform .5s}
.btn-r:hover::before{transform:translateX(120%)}
.btn-r:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(var(--p-rgb),.28)}

.btn-rose{position:relative;overflow:hidden;background:var(--a);transition:transform .2s,box-shadow .2s;display:inline-flex;align-items:center;justify-content:center}
.btn-rose::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transform:translateX(-120%);transition:transform .5s}
.btn-rose:hover::before{transform:translateX(120%)}
.btn-rose:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(var(--a-rgb),.5)}

.ch{transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s}
.ch:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(var(--p-rgb),.1)}

.al{position:relative}
.al::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--a);transition:width .35s}
.al:hover::after{width:100%}

/* Split service rows */
.srv-row{display:grid;grid-template-columns:1fr;gap:0}
@media(min-width:768px){.srv-row{grid-template-columns:1fr 1fr}}

/* Wave dividers */
.wv{overflow:hidden;line-height:0}
.wv svg{display:block;width:100%;height:56px}

/* Stats */
.stv{font-family:var(--font-heading),serif;font-size:clamp(44px,6vw,76px);font-weight:600;line-height:1;color:var(--p)}

/* Floating price tag on hover */
.srv-img{position:relative;overflow:hidden}
.srv-img img,.srv-img .bg-img{transition:transform .5s cubic-bezier(.16,1,.3,1)}
.srv-img:hover .bg-img{transform:scale(1.04)}

#nav{transition:background .3s,box-shadow .3s;background:var(--s)}
#nav.scrolled{box-shadow:0 1px 16px rgba(0,0,0,.07)}

#mmenu{transform:translateX(100%);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .3s}
#mmenu.op{transform:translateX(0);opacity:1;pointer-events:all}

input:focus,select:focus,textarea:focus{outline:1px solid var(--a);outline-offset:2px}
